home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / comm / prtcs155.zip / GENMAILE.REX < prev    next >
OS/2 REXX Batch file  |  1994-01-14  |  171KB  |  2,995 lines

  1. /**/
  2. v="$VER: GenMailer Rexx  The Shelter Mailers Generator  Williamson   56.01.55"
  3. CKDOMAIN=1      /* fix domain if fidonet and zone not 1-6             EMSI  */
  4. FIXDOMAIN=0     /* fix domain using Acvt.WPLRX, requires 680x0        EMSI  */
  5. KILLBAD=0       /* 1=hangup on bad password, 0=send PASSWORD.BAD      EMSI  */   
  6. KNOWNAKAONLY=1  /* 1=Use AKAs in SiteCache, 0=Primary address ONLY    EMSI  */
  7. LOOSESPEC=0     /* 1=BOTH pickup and hold link flags presented        EMSI  */
  8. STRICTZMH=1     /* 1=HXT,HRQ presented during UMH                     EMSI  */
  9. SHOWXPRASC=0    /* 1=display xprascii windwon for text files                */
  10. GPFAX=0         /* GPfax */
  11.  
  12. /* known bad EMSI implementations                              NOT USED YET */
  13. BADEMSI="Portal of Power,D'Bridge,wpl.library,JamMail"
  14.  
  15. script="GenMailer"
  16. xv=right(v,8);genver=left(xv,5);smver=right(xv,5)
  17. say script" v"genver" The SHELTER v"smver" Mailers Generator by Robert Williamson"
  18. if ~show('L', "rexxsupport.library") then
  19.     if ~addlib("rexxsupport.library", 0, -30, 0) then do
  20.         say "Couldn't access rexxsupport.library !"
  21.         exit 20
  22.     end
  23. if ~show('L',"RexxDosSupport.library") then
  24.     if ~addlib("RexxDosSupport.library", 2, -30, 0) then do
  25.         say "Couldn't access RexxDosSupport.library !"
  26.         exit 20
  27.     end
  28.  
  29. if (left(ReadVar('KickStart',"R"),2)) < 37 then do
  30. say 'Sorry, AmigaDOS Release 2 or higher is required to use Shelter';exit 20
  31. end
  32. call SetGlobal('SMVER',smver)
  33. call SetGlobal('GENVER',genver)
  34. pragma("W","NULL")
  35. log=show('p',ROOFLOG)
  36. debug=0;wpldebug=0
  37. CLS='0C'x;CSI='9b'x;AOFF=CSI||'0m';BOLD=CSI||'1m';ITALICS=CSI||'3;40m'
  38. mwarn=BOLD||"WARNING:"||AOFF
  39. lf='0A'x;cr='0D'x;nl="\r\n"
  40. wprogress='CON:0/20/620/200/GenMailer v'genver' ['smver'] [Click to Close - ^C to Abort]/INACTIVE/AUTO/WAIT'
  41. call close('STDOUT');call open('STDOUT',wprogress,'W')
  42. call close('STDIN');call open('STDIN','*','R');call writech('STDOUT',CLS)
  43. say " "BOLD||script||AOFF' v'genver||ITALICS||BOLD||" The SHELTER Mailers Generator"||AOFF||" by "BOLD||"Robert Williamson"||AOFF;say
  44.  
  45. parse upper arg u_mailer mode cfgpath
  46.  
  47. if u_mailer="" | u_mailer="?" then call usage1(0,0)
  48. u_mailer=strip(u_mailer)
  49. l_mailer=lower(u_mailer)
  50. minitial=upper(left(u_mailer,1))
  51. mode=strip(mode)
  52. roof    =u_mailer=="ROOF"
  53. porticus=u_mailer=="PORTICUS"
  54. gazebo  =u_mailer=="GAZEBO"
  55. umbrella=u_mailer=="UMBRELLA"
  56. power=(roof|porticus)
  57. call SetGlobal('SHELTER',u_mailer)
  58.  
  59. ROOFLOG=0
  60. if roof then do
  61. ROOFLOG=1
  62. envpath=""    
  63. end;else do   
  64. call makedir("ENV:"u_mailer)
  65. call makedir("ENVARC:"u_mailer)
  66. envpath=u_mailer"/"
  67. end   
  68.  
  69. if ~roof & ~porticus & ~gazebo & ~umbrella then call usage("Invalid Mailer Name:"||BOLD||u_mailer||AOFF,10)
  70. if roof then call roofusage()
  71. wpldir="CFG:wpl/"
  72. gendir=wpldir||"gen/"||u_mailer||'/'
  73. if cfgpath~="" then gendir=addslash(strip(cfgpath))
  74. srcdir=gendir||"src/"
  75. modemdir=gendir||"modems/"
  76. /* input files */
  77. src=srcdir||u_mailer||'.src'
  78. gencfg=gendir||u_mailer||'GEN.cfg'
  79. cachecfg=gendir||'cache.cfg'
  80. /* output files */
  81. wdir=wpldir||l_mailer
  82. main=wdir||".wpl";menuwpl=wdir||"MENUS.wpl";cfgwpl=wdir||"CFG.wpl"
  83. mdmwpl=wdir||"MODEM.wpl";cachewpl=wdir||"CACHE.wpl";clockwpl=wdir||"CLOCK.wpl"
  84. notifywpl=wdir||"NOTIFY.wpl";callscript ="S:"minitial"call";buscript="S:"minitial"boot"
  85. loggroup=l_mailer||'wpl'
  86. if umbrella then statgroup='umbrellawplstat1'
  87. else statgroup=l_mailer||'wplstat$(line)'
  88. if power then do
  89.     notifylabel=l_mailer||'notify!'
  90.     ftsprod="${ftsflags.$(remote.product)}"
  91.     nameprod="${mname.$(remote.product)}"
  92. end;else do
  93.     notifylabel=l_mailer||'!'
  94.     ftsprod="$(ftsflags.$(remote.product))"
  95.     nameprod="$(mname.$(remote.product))"
  96. end
  97.  
  98. addemsi=0;domodules=0;doall=0
  99. select
  100. when mode="EMSI" then do
  101. doall=1;addemsi=1;domodules=1
  102. end
  103. when mode="EMSINC" then do
  104. doall=1;addemsi=1;domodules=0
  105. end
  106. when mode="ALL" then do
  107. doall=1;addemsi=0;domodules=1
  108. end
  109. when mode="ALLNC" then do
  110. doall=1;addemsi=0;domodules=0
  111. end
  112. when mode="MODEM" then do
  113.     addfax=ReadVar('FAX')=="TRUE"
  114.     call setserial
  115.     signal genmodems
  116. end
  117. when mode="CACHE" then do
  118.     call setserial
  119.     signal gencache
  120. end
  121. otherwise call usage('Invalid mode:'||BOLD||mode||AOFF,10)
  122. end
  123. call setserial
  124. if doall & domodules then call gencache
  125.  
  126. if ~open('cfg',gencfg,"R") then CALL errorabort('Cannot open 'gencfg,10)
  127.  
  128. call SetGlobal('SHELTER',u_mailer)
  129. /*indices*/
  130. it=0;im=0;ib=1;ix=1;ic=0;id=0;iw=0;in=0;is=0;ip=0
  131. ib.1=""
  132. ix.1=""
  133. im.0=""
  134. it.0=""
  135. txtlst=""
  136. bbslst=""
  137. cmdlst=""
  138. adllst=""
  139. wrxlst=""
  140. extlst=""
  141. domainlst=""
  142. myakas=""
  143. if power then menusbuf=";WPLSCRIPT "l_mailer"menus"||lf
  144. cBUF=";WPLSCRIPT "l_mailer"cfg"||lf||"setstatics:"||lf
  145. abUF=""
  146. pBUF=""
  147. utBUF="setutils:"||lf
  148. dialBUF=""
  149. xprBUF=""
  150. ansBUF=""
  151. asBUF=""
  152. faxBUF=""
  153. uuBUF=""
  154. notBUF=""
  155. emsiBUF=""
  156. wzBUF=""
  157. mainBUF=""
  158. userBUF=""
  159. varBUF=""
  160. loopBUF=""
  161. sc_modem=0;sc_init=0;sc_dial=0;sc_answer=0;sc_connect=0;sc_user=0
  162. adduucp=0;addfax=0;addhost=0;addclock=0;addbbs=0;addfreq=0;genmenufile=0;noanswer=0
  163. freqsetup=0;showxpr=0;addspeech=0;sendbanner=0;sendbull=0;primary=0;forcesort=0
  164. nobbs=0;nodoor=0;notext=0;nomagic=0
  165. usexflo=0
  166. setDbuf=""
  167. setAbuf="setakas:"||lf
  168. setHbuf="sethostadr:"||lf
  169. if addemsi & CKDOMAIN then do
  170. ckdBUF='j_ck_emsidomain:'||lf||'Pattern $(remote.address) FIDONET?(1:|2:|3:|4:|5:|6:)#?'||lf||'TrueReturn'||lf
  171. setEbuf=""
  172. end
  173. akas=0
  174. say "Parsing "gencfg
  175. do while ~eof('cfg')
  176.     call writech('STDOUT',".")
  177.     cfgline=strip(translate(ReadLn('cfg')," ",'09'x))
  178.     if (cfgline="" | left(cfgline,2)="/*" | left(cfgline,2)="*/") then iterate
  179.     cfgline=expand(cfgline)
  180.     key=upper(word(cfgline,1))
  181.  
  182.     if key="ROOFLOG" & upper(dequote(strip(subword(cfgline,2))))="TRUE" then do
  183.         ROOFLOG=1
  184.     end
  185.     if key="NOANSWER" & upper(dequote(strip(subword(cfgline,2))))="TRUE" then do
  186.         if ~umbrella then call errorabort('Invalid option: 'key' for 'u_mailer,10)
  187.         noanswer=1
  188.     end
  189.     if umbrella & key="USEXFLO" & upper(dequote(strip(subword(cfgline,2))))="TRUE" then do
  190.         if ~noanswer then call errorabort('Invalid option: 'key' for 'u_mailer', NOASNWER must be TRUE',10)
  191.         usexflo=1
  192.     end
  193.  
  194.     if power & key="SYSOPPW" then do
  195.         sysoppw=upper(dequote(strip(subword(cfgline,2))))
  196.     end
  197.     if key="SYSOP" then do
  198.         sysop=dequote(strip(subword(cfgline,2)))
  199.         call SetVars("SYSOP",sysop)
  200.         utBUF=utBUF||'Set host.sysop "'sysop'"'||lf
  201.     end
  202.     if key="CITY" | key="PHONE" | key="FLAGS" then do
  203.         utBUF=utBUF||'Set host.'lower(key)' "'strip(dequote(subword(cfgline,2)))'"'||lf
  204.     end
  205.     if key="AKA" then do
  206.         aka.akas=subword(cfgline,2)
  207.         if power & index(upper(word(cfgline,2)),'UUCP') > 0 then do
  208.             setAbuf=setAbuf||'Set host.uucp' word(aka.akas,1)||lf
  209.             setDbuf=setDbuf||'uucphost:'||lf||'Set host.domain "UUCP" host.address' word(aka.akas,1)||lf||'Return'||lf
  210.             setHbuf=setHbuf||'Cmp $(remote.network) UUCP'||lf||'TrueJump uucphost'||lf
  211.         end
  212.         else akas=akas+1
  213.         if akas=1 then default_address=upper(strip(word(cfgline,2)))
  214.     end
  215.     if key="DIR" then do
  216.         parse var cfgline junk dirvar.id dirname.id .
  217.         if right(dirname.id,1)=":" then CALL errorabort('DIR 'dirname.id' cannot be a VOLUME, must be a path',10)
  218.         if right(dirname.id,1)="/" then CALL errorabort('DIR path 'dirname.id' cannot have a trailing slash',10)
  219.         id=id+1
  220.     end
  221.     if pos(key,"WSPEC,SSPEC,WPOS,SPOS,BOSS") > 0 then call SetVars(key,upper(dequote(strip(subword(cfgline,2)))))
  222.     if ~umbrella & key="ESC-ESC" then escmode=upper(dequote(strip(subword(cfgline,2))))
  223.     if ~umbrella & key="BANNER" then do
  224.         sendbanner=1
  225.         bannerfile=upper(dequote(strip(subword(cfgline,2))))
  226.         if bannerfile="BANNERFILE" | bannerfile="" then do
  227.             say mwarn' No BANNER'
  228.             bannerfile=0
  229.         end;else if ~exists(bannerfile) then call errorabort('Banner 'bannerfile' not found')
  230.     end
  231.     if ~umbrella & key="BULL" then do
  232.         sendbull=1
  233.         bullfile=upper(dequote(strip(subword(cfgline,2))))
  234.         if bullfile="BULLFILE" | bullfile="" then do
  235.             say mwarn' No BULL'
  236.             bullfile=0
  237.         end;else if ~exists(bullfile) then call errorabort('Bulletin 'bullfile' not found')
  238.     end
  239.     if power & key="MENUS" then do
  240.         menuvol="CFG:";menuext=".MENU"
  241.         select
  242.             when upper(word(cfgline,2))="GEN" then genmenufile=0
  243.             when upper(word(cfgline,2))="MAKE" then do
  244.                 genmenufile=1
  245.                 if word(cfgline,3)="RAM" then menuvol="RAM:"
  246.             end
  247.             otherwise genmenufile=0
  248.         end
  249.     end
  250.     if key="SCROLL" then do
  251.         scl=dequote(strip(word(cfgline,2)))
  252.         Select
  253.             when scl=5 then do
  254.             sc_modem=1;sc_init=1;sc_dial=1;sc_answer=1;sc_connect=1;sc_user=1
  255.             end
  256.             when scl=4 then do
  257.             sc_modem=1;sc_dial=1;sc_answer=1;sc_connect=1;sc_user=1
  258.             end
  259.             when scl=3 then do
  260.             sc_dial=1;sc_answer=1;sc_connect=1;sc_user=1
  261.             end
  262.             when scl=2 then do
  263.             sc_connect=1;sc_user=1
  264.             end
  265.             when scl=1 then sc_user=1
  266.             when scl=0 then nop
  267.             otherwise do
  268.             say;say mwarn' Invalid scroll level:'scl' ,using 0'
  269.             end
  270.         end
  271.     end
  272.     /* TRUE FALSE */
  273.     if key="POLLWIN" | key="XPRWIN" | key="SPEECH" ,
  274.      | key="ACCESS" | key="ALLOWFREQS" | key="FTSFREQS" ,
  275.      | key="ACCEPTCOLLECT" | key="SENDCOLLECT" ,
  276.      | key="DOMAINAWARE" | key="PRIMARYONLY" | key="IGNORENOANSWER" ,
  277.      | key="WFHOST" | key="UUCP" | key="FAX" | key="CLOCK" | key="ONLINE" then do
  278.         bolvar=upper(dequote(strip(subword(cfgline,2))))
  279.         if bolvar="TRUE" | bolvar="FALSE" then call SetVars(key,bolvar)
  280.         else CALL errorabort(key" value "bolvar" must be TRUE or FALSE",10)
  281.         if ~umbrella then do
  282.             if key="SPEECH" & bolvar="TRUE" then addspeech=1
  283.             if key="CLOCK"  & bolvar="TRUE" then addclock=1
  284.             if key="ONLINE" & bolvar="TRUE" then addbbs=1
  285.             if key="UUCP"   & bolvar="TRUE" then adduucp=1
  286.             if key="FAX"    & bolvar="TRUE" then addfax=1
  287.             if key="WFHOST" & bolvar="TRUE" then addhost=1
  288.             if key="ALLOWFREQS" & bolvar="TRUE" then addfreq=1
  289.         end
  290.         if key="XPRWIN" & bolvar="TRUE" then showxpr=1
  291.         if addemsi then do
  292.             if (key="PRIMARYONLY" & bolvar="TRUE") then primary=1
  293.             if (key="DOMAINAWARE" & bolvar="FALSE") then forcesort=1
  294.         end
  295.     end
  296.     if key="CALLWINDOWMIN" | key="REDIALDELAY" | key="BUSYDELAY" then do 
  297.         numvar=strip(word(cfgline,2))
  298.         if datatype(numvar,"NUMERIC") then call SetVars(key,numvar)
  299.         else CALL errorabort(key" value "numvar" must be numeric",10)
  300.     end
  301.     if ~umbrella & key="UMH" then do
  302.         umh=dequote(strip(subword(cfgline,2)))
  303.         call SetVars("UMH",umh)
  304.         utBUF=utBUF||'Set umh "'umh'"'||lf
  305.     end
  306.     if key="PSCREEN" then do
  307.         pscreen=dequote(strip(subword(cfgline,2)))
  308.         call SetVars("SCREEN",pscreen)
  309.         utBUF=utBUF||'Set pscreen "'pscreen'"'||lf
  310.     end
  311.     if key="LOGFILE" then do
  312.         logfile=dequote(strip(subword(cfgline,2)))
  313.         call SetVars("LOGFILE",logfile)
  314.         utBUF=utBUF||'Set logfile "'logfile'"'||lf
  315.     end
  316.     if key="LOGWINDOW" then do
  317.         logwindow=dequote(strip(subword(cfgline,2)))
  318.         if logwindow ~= "" & logwindow ~= "LOGWINDOW" then do
  319.             call SetVars("LOGWINDOW",logwindow)
  320.             utBUF=utBUF||'Set logwindow "'logwindow'"'||lf
  321.         end
  322.     end
  323.     if gazebo & key="FREQCMD" then do
  324.         if addfreq then do
  325.             freqcmd=dequote(strip(subword(cfgline,2)))
  326.             freqsetup=freqsetup+1
  327.         end;else do
  328.             say;say mwarn' Request Server disabled, keyword 'key' ignored'
  329.         end
  330.     end 
  331.     if gazebo & key="FREQCFG" then do
  332.         if addfreq then do
  333.             freqcfg=dequote(strip(subword(cfgline,2)))
  334.             freqsetup=freqsetup+1
  335.         end;else do
  336.             say;say mwarn' Request Server disabled, keyword 'key' ignored'
  337.         end
  338.         
  339.     end 
  340.     if gazebo & key="FREQLOG" then do
  341.         if addfreq then do
  342.             freqlog=dequote(strip(subword(cfgline,2)))
  343.             freqsetup=freqsetup+1
  344.         end;else do
  345.             say;say mwarn' Request Server disabled, keyword 'key' ignored'
  346.         end
  347.     end 
  348.     if key="XFERQ" then do
  349.         ADDRESS COMMAND 'ASSIGN XFERQ:' upper(strip(word(cfgline,2)))
  350.         if RC~=0 then call errorabort('XFERQ: Assign failed',10)
  351.         call SetVars('XFERQ',upper(strip(word(cfgline,2))))   
  352.         ADDRESS COMMAND 'ECHO >XFERQ:hostaddr 'default_address
  353.     end
  354.     if key="NODELIST" then do
  355.         ADDRESS COMMAND 'ASSIGN NODELIST:' upper(strip(word(cfgline,2)))
  356.         if RC~=0 then call errorabort('NODELIST: Assign failed',10)
  357.         call SetVars('NODELIST',upper(strip(word(cfgline,2))))   
  358.     end
  359.  
  360.     if key="WAKEUP" | key="LOGINWAIT" | key="STACK" | key="PRIORITY" ,
  361.         | key="LAUNCHPRI" | key="NEGOPRI" | key="XFERPRI" then do
  362.         parse var cfgline cfgnumber.in cfgnvalue.in .;in=in+1
  363.     end
  364.     if key="LOOKUP" | key="UUCICO" | key="LOGIN" ,
  365.         | key="FAXSEND" | key="FAXRECV" then do
  366.         parse var cfgline cfgstring.is '"' cfgsvalue.is '"' .;is=is+1
  367.     end
  368.     if key="BAN" then do
  369.         parse var cfgline junk promptname.ip '"' prompt.ip '"' .;ip=ip+1
  370.     end
  371.     if power & (key="WRX" | key="WRM") then do
  372.         parse var cfgline junk wrxcmd.iw '"' wrxdesc.iw '"' .
  373.         if key="WRX" then wrxlst=wrxlst||wrxcmd.iw" "
  374.         iw=iw+1
  375.     end
  376.     if power & key="TEXT" then do
  377.         parse var cfgline junk text.it textpath.it '"' txtdesc.it '"' .;it=it+1
  378.     end
  379.     if power & key="MAGIC" then do
  380.         parse var cfgline junk magicname.im magicpath.im '"' magicdesc.im '"' .;im=im+1
  381.     end
  382.     if power & key="DOOR" then do
  383.         parse var cfgline junk '"' doorname.ix '"' doorcmd.ix ;ix=ix+1
  384.     end
  385.     if ~umbrella & key="BBS" then do
  386.         parse var cfgline junk '"' bbsname.ib '"' bbscmd.ib ;ib=ib+1
  387.     end
  388.     if key="CMD" then do
  389.         parse var cfgline junk cmdname.ic cmdcmd.ic;ic=ic+1
  390.     end
  391.     if power & key="SYSOPBASE" then do
  392.         call SetVars("SYSOPBASE",dequote(strip(subword(cfgline,2))))
  393.     end
  394. end
  395. call close('cfg')
  396. drop cfg
  397.  
  398.     say;call writech('STDOUT','Compiling')
  399. if power then do
  400.     if ~genmenufile then do
  401.     wmBUF='wplmenu:'||lf||'Print "Sending main menu\n"'||lf
  402.     wmBUF=wmBUF||'Send "'cls||nl'"'||lf||'Send " ╒═════════════════════╤═════════════════════════════╤═════════════════════╕'nl'"'||lf
  403.     if roof then       wmBUF=wmBUF||'Send " │ ░░░░░▒▒▒▒▒▓▓▓▓▓█████│  The Roof WPL Command Menu  │█████▓▓▓▓▓▒▒▒▒▒░░░░░ │'nl'"'||lf
  404.     if porticus then   wmBUF=wmBUF||'Send " │ ░░░░░▒▒▒▒▒▓▓▓▓▓█████│  Porticus WPL Command Menu  │█████▓▓▓▓▓▒▒▒▒▒░░░░░ │'nl'"'||lf
  405.     wmBUF=wmBUF                   ||'Send " ╘═════════════════════╧═════════════════════════════╧═════════════════════╛'nl'"'||lf||'Send "'nl'"'||lf
  406.     bmBUF='bbsmenu:'||lf||'Print "Sending bbs menu\n"'||lf||'Send "'cls||nl||copies('20'x,16)||u_mailer' BBS Menu'nl'"'||lf
  407.     mmBUF='magicmenu:'||lf||'Print "Sending magic menu\n"'||lf||'Send "'cls||nl||copies('20'x,16)||u_mailer' Magic DownLoad Menu'nl'"'||lf
  408.     tmBUF='textmenu:'||lf||'Print "Sending text menu\n"'||lf||'Send "'cls||nl||copies('20'x,16)||u_mailer' Bulletin Menu'nl'"'||lf
  409.     dmBUF='doormenu:'||lf||'Print "Sending door menu\n"'||lf||'Send "'cls||nl||copies('20'x,16)||u_mailer' Door Menu'nl'"'||lf
  410.     end;else do
  411.     MainMenuBuf=cr                            ||" ╒═════════════════════╤═════════════════════════════╤═════════════════════╕"||cr
  412.     if roof then       MainMenuBuf=MainMenuBuf||" │ ░░░░░▒▒▒▒▒▓▓▓▓▓█████│  The Roof WPL Command Menu  │█████▓▓▓▓▓▒▒▒▒▒░░░░░ │"||cr
  413.     if porticus then   MainMenuBuf=MainMenuBuf||" │ ░░░░░▒▒▒▒▒▓▓▓▓▓█████│  Porticus WPL Command Menu  │█████▓▓▓▓▓▒▒▒▒▒░░░░░ │"||cr
  414.     MainMenuBuf=MainMenuBuf                   ||" ╘═════════════════════╧═════════════════════════════╧═════════════════════╛"||cr
  415.     BBSmenuBUF=cr||copies('20'x,16)'The 'u_mailer' BBS Menu'||cr
  416.     MagicMenuBuf=cr||copies('20'x,16)'The 'u_mailer' Magic DownLoad Menu'||cr
  417.     TextMenuBuf=cr||copies('20'x,16)'The 'u_mailer' Bulletin Menu'||cr
  418.     DoorMenuBuf=cr||copies('20'x,16)'The 'u_mailer' Door Menu'||cr
  419.     end
  420. end
  421.     default=0
  422.     do x=0 to akas-1
  423.         call writech('STDOUT','.')
  424.         if index(aka.x,"UUCP") > 0 then iterate
  425.  
  426.         PARSE var aka.x domain.x '#' zone.x ':' net.x '/' node.x '.' point.x '"' sitename.x '"' wazoo.x zones.x
  427.         zones.x=strip(zones.x)
  428.         if ~default then do
  429.             defaultdomain=domain.x
  430.             default=1
  431.         end
  432.         tmpadr=strip(zone.x':'net.x'/'node.x'.'point.x)
  433.         call SetVars('HOST.ADDRESS.'upper(domain.x),tmpadr)
  434.         domainlst=domainlst||" "upper(domain.x) strip(zone.x)
  435.  
  436.         if addemsi then do
  437.             if point.x=0 then tmpaka=zone.x":"net.x"/"node.x"@"strip(domain.x)
  438.             else tmpaka=zone.x":"net.x"/"node.x"."strip(point.x)"@"strip(domain.x)
  439.             myakas=myakas||tmpaka||" "
  440.             setAbuf=setAbuf||'Set host.aka.'||upper(domain.x) tmpaka||lf
  441.         end
  442.  
  443.         setAbuf=setAbuf||'Set host.address.'||upper(domain.x) tmpadr 'host.wzdomain.'||upper(domain.x) domain.x"."wazoo.x||lf
  444.         setAbuf=setAbuf||'Set host.sitename.'||upper(domain.x) '"'sitename.x'"'||lf
  445.         setDbuf=setDbuf||domain.x||'host:'||lf||'Set host.domain 'upper(domain.x)||lf||'Jump sethost'||lf
  446. if addemsi & CKDOMAIN then do
  447.     setDbuf=setDbuf||domain.x||'remote:'||lf||'Set remote.domain 'upper(domain.x)||lf||'Jump setemsidomain'||lf
  448. end
  449.         if domain.x ~= defaultdomain then do
  450.             setHbuf=setHbuf||'Pattern $(remote.address) ('domain.x'|#?'
  451. if addemsi & CKDOMAIN then setEbuf=setEbuf||'Pattern $(remote.address) #?'
  452.             if words(zones.x)=1 then do
  453.                 setHbuf=setHbuf||zones.x':)#?'||lf
  454. if addemsi & CKDOMAIN then setEbuf=setEbuf||zones.x':#?'||lf
  455.             end;else do
  456.                 setHbuf=setHbuf||"("
  457. if addemsi & CKDOMAIN then setEbuf=setEbuf||"("
  458.                 do j=1 to words(zones.x)-1
  459.                     setHbuf=setHbuf||word(zones.x,j)||':|'
  460. if addemsi & CKDOMAIN then setEbuf=setEbuf||word(zones.x,j)||':|'
  461.                 end
  462.                 setHbuf=setHbuf||word(zones.x,j)||':))#?'||lf
  463. if addemsi & CKDOMAIN then setEbuf=setEbuf||word(zones.x,j)||':)#?'||lf
  464.             end
  465.             setHbuf=setHbuf||'TrueJump 'domain.x'host'||lf
  466. if addemsi & CKDOMAIN then setEbuf=setEbuf||'TrueJump 'domain.x'remote'||lf
  467.         end
  468.     end
  469.     setHbuf=setHbuf||'Jump 'defaultdomain'host'||lf
  470. if addemsi & CKDOMAIN then setEbuf=setEbuf||'Jump unknownemsidomain'||lf
  471.     if addemsi then setAbuf=setAbuf||'Set host.addresses "'strip(myakas)'"'||lf
  472.  
  473.     setAbuf=setAbuf||'Return'||lf
  474.     setAbuf=space(setAbuf,1)
  475.  
  476.     if roof then call SetVars("DOMAIN",upper(defaultdomain))
  477.     else call SetVars("FTNDOMAIN",upper(defaultdomain))
  478.  
  479.     call SetVars("DOMAINLIST",strip(upper(domainlst)))
  480.     call SetVars(minitial'CFG','TRUE')
  481.  
  482.     aBUF=aBUF||setHbuf||setDbuf
  483.     drop setHbuf setDbuf
  484.  
  485. if addemsi & CKDOMAIN then do
  486. setEbuf=setEbuf||'setemsidomain:'||lf||'Set inbound $(inbound.$(remote.domain))'||lf
  487. setEbuf=setEbuf||'SetA remote $(remote.domain)#$(remote.zone):$(remote.net)/$(remote.node).$(remote.point)'||lf
  488. setEbuf=setEbuf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address) $(p.number) $(remote.number)"'||lf
  489. setEbuf=setEbuf||'Return'||lf
  490. setEbuf=setEbuf||'unknownemsidomain:'||lf||'Set inbound $(nonsecure)'||lf||'Return'||lf
  491. aBUF=aBUF||ckDbuf||setEbuf
  492. end
  493.  
  494.     aBUF=aBUF||'sethost:'||lf||'Set host.wzdomain $(host.wzdomain.$(host.domain))'||lf
  495.     aBUF=aBUF||'Set inbound $(inbound.$(host.domain))'||lf||'Set host.sitename $(host.sitename.$(host.domain))'||lf
  496.     aBUF=aBUF||'SetA host $(host.domain)#$(host.address.$(host.domain))'||lf
  497.     aBUF=aBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.host) $(host.address) $(p.inbound) SECURE $(p.hfreqs) $(host.freq)"'||lf
  498.     aBUF=aBUF||'Return'||lf
  499.  
  500.     aBUF=aBUF||'setremote:'||lf||'CmpI $(remote.domain) $(host.domain)'||lf||'TrueReturn'||lf
  501.     aBUF=aBUF||'SetA remote $(host.domain)#$(remote.zone):$(remote.net)/$(remote.node).$(remote.point)'||lf
  502.     aBUF=aBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address) $(p.number) $(remote.number)"'||lf
  503.     aBUF=aBUF||'Return'||lf
  504.  
  505.     /* set dirs*/
  506.     do i=0 to id-1
  507.         call writech('STDOUT',".")
  508.         if upper(dirvar.i)="OUTDIR" then utBUF=utBUF||'Set outbound' dirname.i"/"||lf
  509.             else utBUF=utBUF||'Set 'dirvar.i dirname.i"/"||lf
  510.         call SetVars(upper(dirvar.i),upper(dirname.i))
  511.     end
  512.     singleinbound=GetClip('DOMAINAWARE')=="TRUE"
  513.     dl=GetClip('DOMAINLIST')
  514.     do ftn=1 to words(dl)-1 by 2
  515.         call writech('STDOUT',".")
  516.         if singleinbound then utBUF=utBUF||'Set inbound.'strip(word(dl,ftn))' $(indir)'||lf
  517.         else utBUF=utBUF||'Set inbound.'strip(word(dl,ftn))' $(indir)'strip(word(dl,ftn))'/'||lf
  518.     end
  519.     /*number*/
  520.     do i=0 to in-1
  521.         call writech('STDOUT',".")
  522.         cBUF=cBUF||'Set 'lower(cfgnumber.i) cfgnvalue.i||lf
  523.         if upper(cfgnumber.i)="STACK" then stack=strip(cfgnvalue.i)
  524.         if upper(cfgnumber.i)="XFERPRI" then xferpri=strip(cfgnvalue.i)
  525.         if upper(cfgnumber.i)="NEGOPRI" then negopri=strip(cfgnvalue.i)
  526.         if upper(cfgnumber.i)="LAUNCHPRI" then launchpri=strip(cfgnvalue.i)
  527.     end
  528.     /*string*/
  529.     do i=0 to is-1
  530.         call writech('STDOUT',".")
  531.         cBUF=cBUF||'Set 'lower(cfgstring.i) '"'cfgsvalue.i'"'||lf
  532.     end
  533.  
  534.     do i=0 to ip-1
  535.         call writech('STDOUT',".")
  536.         pBUF=pBUF||'Set 'strip(promptname.i) '"'prompt.i'"'||lf
  537.     end
  538.  
  539. if power then do
  540.     /*WRX*/
  541.     rexxdir=addslash(GetCLip('REXXDIR'))
  542.     do i=0 to iw-1
  543.         call writech('STDOUT',".")
  544.         wrxcmd.i=strip(wrxcmd.i)
  545.         if (index(wrxlst,wrxcmd.i) > 0) & ~exists(rexxdir||wrxcmd.i||".WPLRX") then call errorabort("Command" rexxdir||wrxcmd.i||".WPLRX does not exist",40)
  546.         if ~addfreq & (wrxcmd.i="GRAB" | wrxcmd.i="WFREQIT") then call errorabort("Request Handler disabled, Command" rexxdir||wrxcmd.i||".WPLRX CANNOT be used",40)
  547.         if upper(wrxdesc.i)~="NA" then do
  548.             if ~genmenufile then wmBUF=wmBUF||'Send "  'left_justify(upper(wrxcmd.i),14)||wrxdesc.i||nl'"'||lf
  549.             else MainMenuBuf=MainMenuBuf||"  "left_justify(upper(wrxcmd.i),14)||wrxdesc.i||cr
  550.         end
  551.     end
  552.     utBUF=utBUF||'Set wrxlist "'space(wrxlst,1)'"'||lf
  553.  
  554.     /*TEXT*/
  555.     /* set text and command menu */
  556.     if text.0="" then do
  557.         say;Say mwarn||"No text menu"
  558.         notext=1
  559.     end;else do
  560.         notext=0
  561.         if ~genmenufile then wmBUF=wmBUF||'Send "  'left_justify("INFO",14)||'Information and Bulletins'nl'"'||lf
  562.         else MainMenuBUF=MainMenuBUF||"  "left_justify("INFO",14)||"Information and Bulletins"||cr
  563.         do i=0 to it-1
  564.             call writech('STDOUT',".")
  565.             textpath.i=strip(textpath.i)
  566.             if ~exists(textpath.i) then do
  567.                 say;say mwarn" Text" textpath.i" does not exist, ignoring"
  568.                 iterate
  569.             end
  570.             utBUF=utBUF||'Set 'text.i textpath.i||lf
  571.             txtlst=txtlst||text.i||" "
  572.             if upper(txtdesc.i)~="NA" then do
  573.                 if ~genmenufile then tmBUF=tmBUF||'Send "  'left_justify(upper(text.i),14)||txtdesc.i||nl'"'||lf 
  574.                 else textMenuBuf=TextMenuBuf||"  "left_justify(upper(text.i),14)||txtdesc.i||cr
  575.             end
  576.         end
  577.         utBUF=utBUF||'Set textlist "'strip(txtlst)'"'||lf
  578.         if ~genmenufile then tmBUF=tmBUF||'Send "'nl'  Enter text name or hit Return to return to main menu: "'||lf||'Return'||lf
  579.         else TextMenuBuf=TextMenuBuf||cr||"  Enter text name or hit Return to return to main menu: "||cr
  580.     end
  581.  
  582.     /*MAGIC*/
  583.     if magicname.0="" then do
  584.         say;say mwarn||"No MAGIC menu"
  585.         nomagic=1
  586.     end;else do
  587.         nomagic=0
  588.         if ~genmenufile then wmBUF=wmBUF||'Send "  'left_justify("MAGIC",14)||'Magic Downloads - no byte limits'nl'"'||lf
  589.             else MainMenuBuf=MainMenuBUF||"  "left_justify("MAGIC",14)||"Magic Downloads - no byte limits"||cr
  590.         do i=0 to im-1
  591.             call writech('STDOUT',".")
  592.             magicpath.i=strip(magicpath.i)
  593.             if ~exists(magicpath.i) then do
  594.                 say;say mwarn" Magic File" magicpath.i" does not exist"
  595.             end
  596.             utBUF=utBUF||'Set 'magicname.i'.file' get_fn(magicpath.i)||lf
  597.             utBUF=utBUF||'Set 'magicname.i'.full' magicpath.i||lf
  598.             utBUF=utBUF||'Set 'magicname.i'.desc "'magicdesc.i'"'||lf
  599.             adllst=adllst||magicname.i||" "
  600.             if upper(magicdesc.i)~="NA" then do
  601.                 if ~genmenufile then mmBUF=mmBUF||'Send "  'left_justify(upper(magicname.i),14)||magicdesc.i||nl'"'||lf
  602.                 else MagicMenuBuf=MagicMenuBuf||"  "left_justify(upper(magicname.i),14)||magicdesc.i||cr
  603.             end
  604.         end
  605.         if ~genmenufile then mmBUF=mmBUF||'Send "'nl'  Enter MAGIC name or hit Return to return to main menu: "'||lf||'Return'||lf
  606.         else MagicMenuBuf=MagicMenuBuf||cr||"  Enter MAGIC name or hit Return to return to main menu: "||cr
  607.         utBUF=utBUF||'Set adllist "'strip(adllst)'"'||lf
  608.     end
  609.  
  610.     /*BBS*/
  611.     if bbs.1="" then do
  612.         say;say mwarn||"No BBS menu"
  613.         nobbs=1
  614.         call SetVars('BBS','FALSE')
  615.     end;else do
  616.         nobbs=0
  617.         if ~genmenufile then wmBUF=wmBUF||'Send "  'left_justify("BOARD",14)||'Select a Bulletin Board System'nl'"'||lf
  618.         else MainMenuBUF=MainMenuBUF||"  "left_justify("BOARD",14)||"Select a Bulletin Board System"||cr
  619.         do i=1 to ib-1
  620.             call writech('STDOUT',".")
  621.             utBUF=utBUF||'Set bbsname.'i '"'bbsname.i'"'||lf
  622.             utBUF=utBUF||'Set bbs.'i '"'strip(bbscmd.i)'"'||lf
  623.             if ~genmenufile then bmBUF=bmBUF||'Send "  'left_justify(i,14)||bbsname.i||nl'"'||lf
  624.                 else BBSmenuBUF=BBSmenuBUF||"  "left_justify(i,14)||bbsname.i||cr
  625.             bbslst=bbslst||i||" "
  626.         end
  627.         utBUF=utBUF||'Set bbslist "'strip(bbslst)'"'||lf
  628.         if ~genmenufile then bmBUF=bmBUF||'Send "'nl'  Enter number of BBS or hit Return to return to main menu: "'||lf
  629.             else BBSmenuBUF=BBSmenuBUF||cr||"  Enter number of BBS or hit Return to return to main menu: "||cr
  630.         call SetVars('BBS',"TRUE")
  631.     end
  632.  
  633.     /*DOOR*/
  634.     if door.1="" then do
  635.         say;say mwarn||"No DOOR menu"
  636.         nodoor=1
  637.     end;else do
  638.         nodoor=0
  639.         if ~genmenufile then wmBUF=wmBUF||'Send "  'left_justify("DOOR",14)||'Select a Game or Utility Door'nl'"'||lf
  640.         else MainMenuBUF=MainMenuBUF||"  "left_justify("DOOR",14)||"Select a Game or Utility Door"||cr
  641.         do i=1 to ix-1
  642.             call writech('STDOUT',".")
  643.             utBUF=utBUF||'Set doorname.'i '"'doorname.i'"'||lf
  644.             utBUF=utBUF||'Set door.'i '"'strip(doorcmd.i)'"'||lf
  645.             if ~genmenufile then dmBUF=dmBUF||'Send "  'left_justify(i,14)||doorname.i||nl'"'||lf
  646.                 else DOORmenuBUF=DOORmenuBUF||"  "left_justify(i,14)||doorname.i||cr
  647.             extlst=extlst||i||" "
  648.         end
  649.         utBUF=utBUF||'Set doorlist "'strip(extlst)'"'||lf
  650.         if ~genmenufile then dmBUF=dmBUF||'Send "'nl'  Enter number of DOOR or hit Return to return to main menu: "'||lf
  651.             else DOORmenuBUF=DOORmenuBUF||cr||"  Enter number of DOOR or hit Return to return to main menu: "||cr
  652.     end
  653.  
  654.     /*CMD*/
  655.     do i=0 to ic-1
  656.         call writech('STDOUT',".")
  657.         ecmd=strip(dequote(strip(cmdcmd.i)))
  658.         if ecmd~="" & ecmd~="""" then do
  659.             utBUF=utBUF||'Set cmd.^'||cmdname.i '"'ecmd'"'||lf
  660.             cmdlst=cmdlst||cmdname.i||" "
  661.             if index(ecmd,"$$(")>0 then call errorabort("CMD "strip(cmdcmd.i)" cannot contain deferred variables",10)
  662.             if left(ecmd,2)~="${" then call SetVars(upper(cmdname.i),ecmd,'E')
  663.         end
  664.     end
  665.     utBUF=utBUF||'Set cmdlist "'strip(cmdlst)'"'||lf
  666. /* roof & porticus */
  667. end;else do
  668.     do i=0 to ic-1
  669.         call writech('STDOUT',".")
  670.         ecmd=strip(dequote(strip(cmdcmd.i)))
  671.         if index(ecmd,"$$(")>0 then call errorabort("CMD "strip(cmdcmd.i)" cannot contain deferred variables",10)
  672.         if (ecmd~="" & emcd~="""" & left(ecmd,2)~="${") then call SetVars(upper(cmdname.i),ecmd,'E')
  673.     end
  674. end
  675. if gazebo & addfreq then do
  676.     if freqsetup=3 then utBUF=utBUF||'Set freqcmd "Run 'freqcmd' >>'freqlog freqcfg' $$(remfile) $$(infile) \"$$(remote.address)\" $$(baud)"'||lf
  677.     else CALL errorabort('File Request handler setup missing parameters',20)
  678. end
  679.  
  680. if power then do
  681.     bmBUF=bmBUF||'Return'||lf
  682.     dmBUF=dmBUF||'Return'||lf
  683.     wmBUF=wmBUF||'Return'||lf
  684.     wmBUF=wmBUF||mmBUF||tmBUF||dmBUF
  685.     drop mmBUF tmBUF dmBUF
  686. end /*roof & porticus */
  687.  
  688.  
  689.     call writech('STDOUT',".")
  690. if showxpr then cBUF=cBUF||'Set showxpr TRUE'||lf
  691.  
  692. cBUF=cBUF||'Set postinbound 'notifylabel'postinbound postoutbound 'notifylabel'postoutbound'||lf
  693. cBUF=cBUF||'Set preinbound 'notifylabel'preinbound preoutbound 'notifylabel'preoutbound'||lf
  694. cBUF=cBUF||'Set prefullname 'notifylabel'prefullname postfullname 'notifylabel'postfullname'||lf
  695. cBUF=cBUF||'Set preoutfullname 'notifylabel'preoutfullname postoutfullname 'notifylabel'postoutfullname'||lf
  696. cBUF=cBUF||'Set OwnDev "'notifylabel'showdevowner"'||lf
  697. cBUF=cBUF||'Set host.wzcap  13 host.wzprot "DietIFNA ZedZip ZedZap"'||lf 
  698. if umbrella then do
  699. cBUF=cBUF||'Set host.wzext "-Freq +Domain" host.freq "FALSE"'||lf
  700. end;else do
  701. if addfreq then cBUF=cBUF||'Set host.wzext "+Freq +Domain" host.freq "TRUE"'||lf
  702. else cBUF=cBUF||'Set host.wzext "-Freq +Domain" host.freq "FALSE"'||lf
  703. end
  704. cBUF=cBUF||'SubJump 'l_mailer'cfg!setakas'||lf||'SubJump 'l_mailer'cfg!setutils'||lf
  705. cBUF=space(cBUF,1)
  706.  
  707. if (umbrella | gazebo) then do
  708. cBUF=cBUF||'Set mname.0 "Fido" ftsflags.0 "ot" mname.5 "OPUS" mname.7 "WPL" mname.12 "FrontDoor" "Binkley" mname.50'||lf
  709. cBUF=cBUF||'Set mname.27 "Paragon" mname.57 "TrapDoor" mname.58 "Welmat" ftsflags.58 "7n,by" mname.66 "Portal of Power"'||lf
  710. cBUF=cBUF||'Set mname.106 "MacWoof" mname.170 "Xenolink" mname.196 "ProMailer" mname.218 "ROOF"'||lf
  711. end
  712.  
  713. if ROOFLOG then cBUF=cBUF||'Set callsin 1 callsout 11 ftnin 2 ftnout 12 uucpin 3 uucpout 13 faxsin 4 faxsout 14 humanin 5 humanout 15 bbsin 6 bbsout 16 msgin 7 msgout 17 filesin 8 filesout 18 bytesin 9 bytesout 10'||lf
  714.  
  715. if addemsi then do
  716. cBUF=cBUF||'Set host.mailer "'u_mailer'" host.product DA host.serial "'emsiserial'"'||lf
  717. cBUF=cBUF||'Set host.baud $(linkrate) emsi.link "8N1"'||lf
  718. if addfreq then cBUF=cBUF||'Set emsi.compat "DZA,ZAP,ZMO,SLK,TEL,ARC,XMA"'||lf
  719. else cBUF=cBUF||'Set emsi.compat "DZA,ZAP,ZMO,SLK,TEL,ARC,XMA,NRQ"'||lf
  720. end
  721.  
  722. cBUF=cBUF||'Return'||lf
  723. cBUF=cBUF||setAbuf
  724. cBUF=cBUF||utBUF
  725. cBUF=cBUF||pBUF||'Return'||lf
  726.  
  727. drop setAbuf utBUF pBUF
  728. call open('cw',cfgwpl,"W")
  729. call writech('cw',cBUF)
  730. call close('cw')
  731. drop cw cBUF 
  732. say;Say "Wrote "cfgwpl
  733.  
  734. if power then do
  735.     call writech('STDOUT',"Generating User Menus: ")
  736.     if genmenufile then do
  737.         call writech('STDOUT',"MAIN ")
  738.         call savemenu(menuvol||"MAIN"||menuext,MainMenuBuf)
  739.         drop MainMenuBuf
  740.         if ~nomagic then do
  741.             call writech('STDOUT',"MAGIC ")
  742.             call savemenu(menuvol||"MAGIC"||menuext,MagicMenuBuf)
  743.         end
  744.         drop MagicMenuBuf
  745.         if ~notext then do
  746.             call writech('STDOUT',"INFO ")
  747.             call savemenu(menuvol||"INFO"||menuext,TextMenuBuf)
  748.         end
  749.         drop TextMenuBuf
  750.         if ~nobbs then do
  751.             call writech('STDOUT',"BOARD ")
  752.             call savemenu(menuvol||"BOARD"|menuext,BBSmenuBuf)
  753.         end
  754.         drop BBSmenuBuf
  755.         if ~nodoor then do
  756.             call writech('STDOUT',"DOOR ")
  757.             call savemenu(menuvol||"DOOR"|menuext,DOORmenuBuf)
  758.         end
  759.         drop DOORmenuBuf
  760.         call SetVars('MENUS','FILE')
  761.         say;say "Wrote Menu Files"
  762.     end;else do
  763.         menusbuf=menusbuf||bmBUF||wmBUF
  764.         drop bmBUF wmBUF
  765.         call writech('STDOUT',"MAIN ")
  766.         if ~nomagic then call writech('STDOUT',"MAGIC ")
  767.         if ~notext then call writech('STDOUT',"INFO ")
  768.         if ~nobbs then call writech('STDOUT',"BOARD ")
  769.         if ~nodoor then call writech('STDOUT',"DOOR ")
  770.         call open('cw',menuwpl,"W")
  771.         call writech('cw',menusbuf)
  772.         call close('cw')
  773.         drop cw menusbuf
  774.         say;Say "Wrote "menuwpl
  775.         call SetVars('MENUS','MENU')
  776.     end
  777. end
  778.  
  779. if ~power then call gennotify
  780. if doall then do
  781.     if power & domodules then call gennotify
  782.     if ~roof then call gencallscript
  783.     if power then call genbootuserscript
  784.     signal genmodems
  785. end
  786. call SaveEnv()
  787. Say 'Generation of 'u_mailer' Mailer completed'
  788. exit
  789.  
  790. savemenu:
  791.     if ~open('m',arg(1),"W") then call errorabort('Unable to save' arg(1),10)
  792.     call writech('m',arg(2))
  793.     call close('m')
  794.     say 'Wrote 'arg(1)
  795. return
  796.  
  797. genmodems:
  798. nummodems=0;faxinitdone=0
  799. if ~umbrella then do
  800.     mdmcfgs=showdir(modemdir,'f')
  801.     if words(mdmcfgs)=0 then CALL errorabort('No modem configs in 'modemdir,10)
  802.     mBUF=""
  803.     m1BUF=""
  804.     do i=1 to words(mdmcfgs)
  805.         call genline(modemdir||word(mdmcfgs,i))
  806.         say
  807.     end
  808.  
  809.     m1BUF=m1BUF||'launchit:'||lf||'SubJump 'l_mailer'cfg!setstatics'||lf||'SubJump 'l_mailer'!setglobals'||lf||'SubJump 'l_mailer'modem!preinit'||lf
  810.     if roof then m1BUF=m1BUF||'RexxMsg FY ROOFLOG "OPENSTATUS WPL $(line)"'||lf
  811.         else m1BUF=m1BUF||'Print "Opening Window\n"'||lf||'RexxMsg "" REXX "$(rexxdir)SHELTER.rexx OPENSTATUS $(line)"'||lf
  812.     m1BUF=m1BUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Launched Slave:$(line) $(modem)"'||lf
  813.  
  814.     m1BUF=m1BUF||'Set openstatus "CON:0/$($(line).w_offset)/640/40/'u_mailer' Line $(line) $(modem) Status/AUTO/INACTIVE/CLOSE/SCREEN$(pscreen)"'||lf
  815.     m1BUF=m1BUF||'SetStatus NULL:'||lf||'Set priority $(launchpri)'||lf
  816.     m1BUF=m1BUF||'Set RC ${CACHE}'||lf||'FalseReturn'||lf
  817.     m1BUF=m1BUF||'SubJump xcache!setcache'||lf
  818.     m1BUF=m1BUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Loaded Cache"'||lf||'Return'||lf
  819.  
  820.     m1BUF=m1BUF||'preinit:'||lf||'Set modem "$(modem) $(baudlocked)bps"'||lf
  821.     if sc_modem then m1BUF=m1BUF||'SetStatus "CON:0/10/600/60/PreInit $(modem)"'||lf
  822.     m1BUF=m1BUF||'ModemOpen'||lf||'SetBaud $(lockedrate)'||lf
  823.     m1BUF=m1BUF||'Print "$(state) Baud:$(baud) Locked:$(baudlocked)\n"'||lf||'subJump 'l_mailer'modem!attention'||lf||'TrueJump preinit1'||lf
  824.     m1BUF=m1BUF||'SetBaud $(lockedrate)'||lf||'SubJump 'l_mailer'modem!init'||lf||'Jump preinit2'||lf
  825.     m1BUF=m1BUF||'preinit1:'||lf||'Set state "ModemInit $(modem)"'||lf||'SubJump 'l_mailer'modem!init'||lf||'SetBaud $(lockedrate)'||lf
  826.     m1BUF=m1BUF||'Print "$(state) Baud:$(baud) Locked:$(baudlocked)\n"'||lf||'SubJump 'l_mailer'modem!attention'||lf
  827.     m1BUF=m1BUF||'preinit2:'||lf||'FalseJump initerr'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state)"'||lf
  828.     m1BUF=m1BUF||'Print "Preinit OK  $(baud) $(baudlocked)\n"'||lf||'Return'||lf
  829.     m1BUF=m1BUF||'initerr:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Modem Dead: $(state)"'||lf
  830.     m1BUF=m1BUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf||'Set RC FALSE'||lf||'SetStatus NULL:'||lf||'Return'||lf
  831.  
  832.     m1BUF=m1BUF||'attention:'||lf||'ModemClear'||lf||'SmartSend $(atten)'||lf||'GetResponse 30'||lf||'Pattern $(event) #?$(prompt)#?'||lf
  833.     m1BUF=m1BUF||'Print "$(atten) Response:$(event)\n"'||lf||'Return'||lf
  834.  
  835.     m1BUF=m1BUF||'init:'||lf||'ModemClear'||lf||'SmartSend $(initstring)'||lf||'GetResponse 30'||lf||'Pattern $(event) #?$(prompt)#?'||lf
  836.     m1BUF=m1BUF||'Print "$(initistring) Response:$(event)\n"'||lf||'Return'||lf
  837.  
  838.  
  839.     m1BUF=m1BUF||'modeminit:'||lf||'Print "WAKEUP\n"'||lf||'SetBaud $(lockedrate)'||lf
  840.     m1BUF=m1BUF||'SubJump 'l_mailer'modem!attention'||lf||'FalseSubJump 'l_mailer'modem!init'||lf||'Return'||lf
  841.  
  842.     mBUF=m1BUF||mBUF
  843. /*NOT UMBRELLA*/
  844. end;else do
  845. /*IS UMBRELLA*/
  846.     if ~exists(modemdir||"MODEM.CFG") then CALL errorabort("Cannot find "modemdir"MODEM.CFG",10)
  847.     mBUF='launchit:'||lf
  848.     mBUF=mBUF||'Set openstatus "CON:0/80/600/80/Umbrella Status/INACTIVE/AUTO/CLOSE/SCREEN$(pscreen)"'||lf
  849.     if sc_modem then mBUF=mBUF||'SetStatus $(openstatus)'||lf
  850.     mBUF=mBUF||'Print "Modem Setup\n"'||lf||'Set RC $(locked)'||lf||'TrueSubJump umbrellamodem!preinit'||lf
  851.     mBUF=mBUF||'SubJump umbrellacfg!setstatics'||lf||'SubJump umbrella!setglobals'||lf
  852.     mBUF=mBUF||'Print "Opening Window\n"'||lf||'RexxMsg "" REXX "$(rexxdir)SHELTER.rexx OPENSTATUS"'||lf
  853.     mBUF=mBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Launched Slave:$(line) $(modem)"'||lf
  854.     mBUF=mBUF||'SetStatus NULL:'||lf||'Set priority $(launchpri)'||lf
  855.     mBUF=mBUF||'Set RC ${CACHE}'||lf||'FalseReturn'||lf
  856.     mBUF=mBUF||'SubJump xcache!setcache'||lf
  857.     mBUF=mBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Loaded Cache"'||lf||'Return'||lf
  858.     mBUF=mBUF||'preinit:'||lf||'ModemOpen'||lf||'SetBaud $(lockedrate)'||lf
  859.     mBUF=mBUF||'Print "$(state) Baud:$(baud) Locked:$(baudlocked)\n"'||lf||'subJump umbrellamodem!attention'||lf||'TrueJump preinit1'||lf
  860.     mBUF=mBUF||'SetBaud $(lockedrate)'||lf||'SubJump umbrellamodem!init'||lf||'Jump preinit2'||lf
  861.     mBUF=mBUF||'preinit1:'||lf||'Set state "ModemInit $(modem)"'||lf||'SubJump umbrellamodem!init'||lf||'SetBaud $(lockedrate)'||lf
  862.     mBUF=mBUF||'Print "$(state) Baud:$(baud) Locked:$(baudlocked)\n"'||lf||'SubJump umbrellamodem!attention'||lf
  863.     mBUF=mBUF||'preinit2:'||lf||'FalseJump initerr'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state)"'||lf
  864.     mBUF=mBUF||'Print "Preinit OK  $(baud) $(baudlocked)\n"'||lf||'Return'||lf
  865.     mBUF=mBUF||'initerr:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Modem Dead: $(state)"'||lf
  866.     mBUF=mBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf||'Set RC FALSE'||lf||'Return'||lf
  867.     mBUF=mBUF||'attention:'||lf||'ModemClear'||lf'SmartSend $(atten)'||lf||'GetResponse 30'||lf||'Pattern $(event) #?$(prompt)#?'||lf
  868.     mBUF=mBUF||'Print "$(atten) Response:$(event)\n"'||lf||'return'||lf
  869.     mBUF=mBUF||'init:'||lf||'ModemClear'||lf||'SmartSend $(initstring)'||lf
  870.     mBUF=mBUF||'GetResponse 30'||lf||'Pattern $(event) #?$(prompt)#?'||lf||'Print "$(atten) Response:$(event)\n"'||lf||'Return'||lf
  871.     mBUF=mBUF||'modeminit:'||lf||'Print "Reinit\n"'||lf||'SetBaud $(lockedrate)'||lf||'SetStatus NULL:'||lf
  872.     mBUF=mBUF||'SubJump umbrellamodem!attention'||lf||'TrueReturn'||lf
  873.     mBUF=mBUF||'SubJump umbrellamodem!init'||lf||'Return'||lf
  874.     call genline(modemdir||"MODEM.CFG")
  875.     say
  876. end /*UMBRELLA*/
  877.     if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': mBUF:'length(mBUF)
  878.     call open('wpl',mdmwpl,'w')
  879.     call writech('wpl',mBUF)
  880.     call close('wpl')
  881.     drop wpl mBUF
  882.     say "Wrote" mdmwpl "for" nummodems "lines"
  883.     if mode="MODEM" then return
  884. genmainwpl:
  885.     say 'Generating startup code'
  886.     launches=0
  887.     sBUF=""
  888.     if addhost & power then do
  889.         firstmodem=2
  890.         call genhost
  891.     end;else do
  892.         firstmodem=1
  893.     end
  894.  
  895. do i=firstmodem to nummodems+1
  896.     sBUF=sBUF||'startup-'i':'||lf
  897.     sBUF=sBUF||'SubJump 'l_mailer'modem!modem'i||lf
  898.     sBUF=sBUF||'SubJump cleargui'||lf
  899.     if islocked.i=1 then do
  900.         tmppri=(xferpri+1)
  901.         sBUF=sBUF||'Set xferpri' tmppri||lf
  902.         tmppri=(negopri+1)
  903.         sBUF=sBUF||'Set negopri' tmppri||lf
  904. /*        tmppri=(launchpri+1)  */
  905. /*        sBUF=sBUF||'Set launchpri' tmppri||lf */
  906.  
  907.     end
  908.     sBUF=sBUF||'Jump slaveloop '||lf
  909.     if umbrella then leave
  910. end
  911.  
  912. sBUF=sBUF||'startup:'||lf
  913. sBUF=sBUF||'Set GENVER "'genver'" line 0 stack 50000 priority 0 pscreen "'pscreen'"'||lf
  914. sBUF=sBUF||'SetEnv WPLVER "${WPLname}"'||lf
  915. if roof then do
  916.     sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: ${WPLname} 'genver'"'||lf
  917.     sBUF=sBUF||'Address LOGPROC "OpenLog 'l_mailer'file f ${W_SLAVE_LOGFILE}"'||lf
  918.     sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: OpenLog rooffile f ${W_SLAVE_LOGFILE} returned: $(RESULT1)"'||lf
  919.     sBUF=sBUF||'Address LOGPROC "AddLogGroup 'loggroup  l_mailer'file"'||lf
  920.     sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: AddLogGroup roofwpl rooffile returned: $(RESULT1)"'||lf
  921. end
  922. /* Load Cache */
  923.     sBUF=sBUF||'RexxMsg SY REXX "return exists(\"CFG:WPL/'l_mailer'CACHE.WPL\")"'||lf
  924.     sBUF=sBUF||'Set RC $(result1)'||lf||'FalseJump cache_none'||lf
  925.     sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Loading Cache"'||lf
  926. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: Loading Cache"'||lf
  927.     sBUF=sBUF||'LoadScript xcache CFG:WPL/'l_mailer'CACHE.WPL'||lf||'FalseJump cache_loaderr'||lf
  928.     sBUF=sBUF||'SetEnv CACHE TRUE'||lf||'Jump loadslaves'||lf
  929.     sBUF=sBUF||'cache_loaderr:'||lf
  930. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: Load failed Xcache[CFG:WPL/'l_mailer'CACHE.WPL]"'||lf
  931.     sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Load failed RC:$(RC) Xcache[CFG:WPL/'l_mailer'CACHE.WPL]"'||lf||'SetEnv CACHE FALSE'||lf||'Jump loadslaves'||lf
  932.     sBUF=sBUF||'cache_none:'||lf
  933. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: Xcache[CFG:WPL/'l_mailer'CACHE.WPL] does not exist"'||lf
  934.     sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Xcache[CFG:WPL/'l_mailer'CACHE.WPL] does not exist"'||lf||'SetEnv CACHE FALSE'||lf
  935.     sBUF=sBUF||'loadslaves:'||lf
  936. if addhost & power then do
  937.     sBUF=sBUF||'Launch 'u_mailer'1 'l_mailer'!startup-1 -1 'stack||lf 
  938. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: Launch of ROOF1 roof!startup-1 -1 'stack' returned $(RC)"'||lf
  939.     launches=launches+1
  940. end
  941.  
  942. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog' l_mailer||'wpl $<time> $(line) ${WPLName}/KS:${Kickstart}/WB:${WorkBench}"'||lf
  943.  
  944. if umbrella then say "Generating Modem launch code"
  945. else say "Generating Modem launch code, BOLD=ENABLED, ITALICS=DISABLED"
  946. if ~umbrella then call writech('STDOUT',"Modem line: ")
  947. do i=firstmodem to nummodems+1
  948.     if dolaunch.i=1 then do
  949.         if ~umbrella then call writech('STDOUT',bold||i||AOFF" ")
  950.         sBUF=sBUF||'Set slaves 'i' line 'i||lf
  951.         sBUF=sBUF||'Launch 'u_mailer||i l_mailer'!startup-'i launchpri stack||lf
  952.         if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: Launch of ROOF'i 'roof!startup-'i launchpri stack' returned $(RC)"'||lf
  953.         sBUF=sBUF||'Address LOGPROC' '"PutLog 'loggroup' $<time> $(line) Launched 'u_mailer||i'"'||lf
  954.         launches=launches+1
  955.     end;else do
  956.         if umbrella then call errorabort('Modem Launch is DISABLED',10)
  957.         else call writech('STDOUT',ITALICS||i||AOFF" ")
  958.         sBUF=sBUF||'Address LOGPROC' '"PutLog 'loggroup' $<time> $(line) 'u_mailer||i' NOT Launched"'||lf
  959.         if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL0: 'u_mailer||i' NOT Launched"'||lf
  960.     end
  961.     if umbrella then leave
  962. end
  963.  
  964. say
  965. if ~umbrella & launches=0 then call errorabort('No Modems Launched',10)
  966. sBUF=sBUF||'Set slaves 'launches+1||lf
  967. if ~umbrella then sBUF=sBUF||'System "RXSET SLAVES $(slaves)"'||lf
  968. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) ${WPLName}/KS:${Kickstart}/WB:${WorkBench}"'||lf
  969. if ROOFLOG then sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Compiled 'u_mailer' Mailer v'genver' Stack: $(stack) Priority: $(priority)"'||lf
  970.     else sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Compiled 'u_mailer' Mailer v'smver' Stack: $(stack) Priority: $(priority)"'||lf
  971. sBUF=sBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'" '||lf||'Set RC 0'||lf||'Return'||lf
  972.  
  973.                                          call genmain
  974.                                          call genwazoo
  975.                          if addemsi then call genemsi
  976.                        if ~umbrella then call genuucp
  977.                                          call genxpr
  978.               if ~umbrella & addfax then call genfax
  979. if ~umbrella & addclock & domodules then call genclock
  980.     else call writech('STDOUT',lf)
  981.                                          call gendialer
  982.                        if ~noanswer then call genanswer
  983.                        if ~umbrella then call genuser
  984.                                          call genloop
  985.  
  986. if debug & log then call sizebuffers
  987. if power then do
  988.     mainBUF=mainBUF||emsiBUF||wzBUF||xprBUF||faxBUF||uuBUF||aBUF||dialBUF||ansBUF||userBUF||loopBUF
  989.     drop emsiBUF wzBUF xprBUF faxBUF uuBUF dialBUF ansBUF aBUF userBUF loopBUF
  990. end;else do
  991.     mainBUF=mainBUF||notBUF||emsiBUF||wzBUF||xprBUF||faxBUF||uuBUF||aBUF||dialBUF||ansBUF||userBUF||loopBUF
  992.     drop notBUF emsiBUF wzBUF xprBUF faxBUF uuBUF dialBUF ansBUF aBUF userBUF loopBUF
  993. end
  994.  
  995. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': AllBUF:'length(mainBUF)
  996. if ~open('wpl',main,'W') then CALL errorabort("Unable to write "main,40)
  997. call writech('wpl',mainBUF)
  998. call close('wpl')
  999. drop mainBUF
  1000.  
  1001. if exists(src) then call join(main,src,main)
  1002.                         call genaftersession
  1003.                         call genvars
  1004.  
  1005. if ~open('wpl',main,'A') then CALL errorabort("Unable to append to "main,40)
  1006. srcbuf=readch('wpl')
  1007. srcbuf=srcbuf||asBUF||varBUF||sBUF
  1008. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': SrcBUF:'length(srcBUF)
  1009. drop asBUF varBUF sBUF
  1010. call writech('wpl',srcbuf)
  1011. call close('wpl')
  1012. drop srcbuf
  1013.  
  1014. if addhost then modems=launches-1
  1015. else modems=launches
  1016. Say 'Wrote' main 'for' launches 'line launches,' modems 'modems'
  1017. call SaveEnv()
  1018. say 'Generation of 'u_mailer' completed'
  1019. return
  1020.  
  1021. genline:
  1022.     if ~open('mcfg',arg(1),'R') then CALL errorabort("Cannot open ["arg(1)"]",10)
  1023.  
  1024.     f=get_fn(upper(arg(1)))
  1025.     parse var f 'MODEM' modem '.CFG'
  1026.     if modem="" | modem="MODEM" then do
  1027.         if umbrella then modem=1
  1028.         else do
  1029.             Say 'Skipping Umbrella Modem config file:'arg(1)
  1030.             call close('mcfg')
  1031.             return
  1032.         end
  1033.     end
  1034.     say 'Compiling 'arg(1)' for line 'modem
  1035.  
  1036.     nummodems=nummodems+1
  1037.  
  1038.     mBUF=mBUF||"modem"modem":"||lf||'Set line' modem||lf
  1039.     dolaunch.modem=1
  1040.     inflags="E0"
  1041.     outflags=""
  1042.     emsiline=0
  1043.     bpsBUF="Set"
  1044.     dlyBUF="Set"
  1045.     dvBUF="Set" 
  1046.     do while ~eof('mcfg')
  1047.         call writech('STDOUT','.')
  1048.         cfgline=strip(translate(ReadLn('mcfg')," ",'09'x))
  1049.         if (cfgline="" | left(cfgline,2)="/*" | left(cfgline,2)="*/") then iterate
  1050.         cfgline=expand(cfgline)
  1051.         key=upper(word(cfgline,1))
  1052.         select
  1053.             when key="TRYFTS1" then do
  1054.                 inflags=inflags  ||",G1"
  1055.                 outflags=outflags||",G1,D1"
  1056.             end
  1057.             when key="TRYWAZOO" then do
  1058.                 inflags =inflags ||",G6"
  1059.                 outflags=outflags||",G6,D6"
  1060.             end
  1061.             when key="TRYEMSI" then do
  1062.                 inflags =inflags ||",GE"
  1063. /*                outflags=outflags||",GE,DE"   */
  1064.                 outflags=outflags||",GE"  
  1065.                 emsiline=1
  1066.             end
  1067.             when key="LAUNCH" then dolaunch.modem=1
  1068.             when key="NOLAUNCH" then dolaunch.modem=0
  1069.             when key="LO" then mBUF=mBUF||'Set LO 'word(cfgline,2)||lf
  1070.             when key="OFFSET" then mBUF=mBUF||'Set 'modem'.w_offset' word(cfgline,2)||lf
  1071.             when key="MODEM" then dvBUF=dvBUF||' modem "'subword(cfgline,2)'"'
  1072.             when key="DEVICE" then dvBUF=dvBUF||' Device 'word(cfgline,2)' Unit 'word(cfgline,3)
  1073.             when key="RTSCTS" then do
  1074.                 if word(cfgline,2)="TRUE" then flags=164
  1075.                     else flags=160
  1076.                 dvBUF=dvBUF||' SerFlags' flags
  1077.             end
  1078.             when key="DTRCTL" then dvBUF=dvBUF||' DTR_Control 'word(cfgline,2)
  1079.             when key="BUFFERS" then dvBUF=dvBUF||' SerReadBuf 'word(cfgline,2)' SerWriteBuf 'word(cfgline,3)
  1080.             when key="SLOWMODEM" then dlyBUF=dlyBUF||' SlowModem 'word(cfgline,2)
  1081.             when key="LOCKED" then do
  1082.                 locked=strip(upper(word(cfgline,2)))
  1083.                 if locked="TRUE" then islocked.modem=1
  1084.                     else islocked.modem=0
  1085.                 bpsBUF=bpsBUF||' Locked 'locked
  1086.             end
  1087.             when key="LOCKEDBPS" then do
  1088.                 lockbps=strip(word(cfgline,2))
  1089.                 bpsBUF=bpsBUF||' LockedRate 'lockbps
  1090.             end
  1091.             when key="LINKBPS" then do
  1092.                 linkbps=strip(word(cfgline,2))
  1093.                 bpsBUF=bpsBUF||' LinkRate 'linkbps
  1094.             end
  1095.             when key="INITWAIT" then dlyBUF=dlyBUF||' InitWait 'strip(word(cfgline,2))' InitLoop 5'
  1096.             when key="RESPONSETIMEOUT" then dlyBUF=dlyBUF||' ResponseTimeout 'subword(cfgline,2)
  1097.  
  1098.             when key="OK" then mBUF=mBUF||'Set prompt 'word(cfgline,2)||lf||'AddResponse OK 'word(cfgline,2)||lf 
  1099.             when key="FIND" then mBUF=mBUF||'AddResponse find "'subword(cfgline,2)' "'||lf
  1100.             when key="300" then mBUF=mBUF||'AddResponse 300 "'subword(cfgline,2)'"'||lf
  1101.             when key="FAX" then do
  1102.                 if ~addfax then do
  1103.                     say;say mwarn' FAX install disabled, response keyword ignored'
  1104.                 end;else do
  1105.                     mBUF=mBUF||'Set isfax.'modem' TRUE'||lf
  1106.                     mBUF=mBUF||'AddResponse 'upper(key)' "'subword(cfgline,2)'"'||lf
  1107.                 end
  1108.             end 
  1109.             when key="BUSY" | key="PROGRESS" | key="CID"| key="CONNECT" ,
  1110.             | key="VOICE" | key="MAID" | key="LINE" | key="TIMEOUT" | key="ERROR" ,
  1111.                 then mBUF=mBUF||'AddResponse 'upper(key)' "'subword(cfgline,2)'"'||lf
  1112.             when key="RING" then do
  1113.                 if ~noanswer then mBUF=mBUF||'AddResponse 'upper(key)' "'subword(cfgline,2)'"'||lf
  1114.                 else call errorabort('Invalid modem response: 'key' for dial only Umbrella',10)
  1115.             end                
  1116.             when key="ATTEN"  then mBUF=mBUF||'Set Atten "'subword(cfgline,2)'"'||lf
  1117.             when key="HANGUP" then mBUF=mBUF||'Set HangupString "'subword(cfgline,2)'"'||lf
  1118.             when key="INIT"   then mBUF=mBUF||'Set InitString "'subword(cfgline,2)'"'||lf
  1119.             when key="DIAL"   then mBUF=mBUF||'Set DialString "'subword(cfgline,2)'"'||lf
  1120.             when key="ANSWER" then do
  1121.                 if ~noanswer then mBUF=mBUF||'Set AnswerString "'subword(cfgline,2)'"'||lf
  1122.                 else call errorabort('Invalid modem command: 'key' for dial only Umbrella',10)
  1123.             end
  1124.             when key="GETPROFILE" then mBUF=mBUF||'Set GetProfileString "'subword(cfgline,2)'"'||lf
  1125.             otherwise CALL errorabort('Error in 'arg(1)':'cfgline,10)
  1126.         end
  1127.     end
  1128.     call close('mcfg');drop mcfg
  1129.  
  1130.     if ~islocked.modem & (linkbps~=lockbps) then call errorabort('LINKBPS and LOCKBPS not EQUAL for LOCKED FALSE Modem',20)
  1131.     if islocked.modem & flags~=164 then call errorabort('RTS/CTS Handshake not set for LOCKED modem',20)
  1132.  
  1133.     mBUF=mBUF||dvBUF||lf||dlyBUF||lf
  1134.     drop dvBUF dlyBUF
  1135.     if emsiline then mBUF=mBUF||'Set emsi.'modem' TRUE inflags.'modem strip(inflags,'L',',') 'outflags.'modem strip(outflags,'L',',')||lf
  1136.         else mBUF=mBUF||'Set emsi.'modem' FALSE inflags.'modem strip(inflags,'L',',') 'outflags.'modem strip(outflags,'L',',')||lf
  1137.     if locked="TRUE" then do
  1138.         bpsBUF=bpsBUF||' BaudLocked 'lockbps' Baud 'linkbps' maxrate 'lockbps
  1139.         mBUF=mBUF||'SetBaud 'lockbps||lf
  1140.     end;else do
  1141.         bpsBUF=bpsBUF||' BaudLocked 'linkbps' Baud 'linkbps' maxrate 'linkbps
  1142.         mBUF=mBUF||'SetBaud 'linkbps||lf
  1143.     end
  1144.     mBUF=mBUF||bpsBUF||lf
  1145.     drop bpsBUF
  1146.     mBUF=mBUF||'Jump launchit'||lf
  1147. return
  1148.  
  1149.  
  1150. genuucp:
  1151. if adduucp then do
  1152. call writech('STDOUT',"UUCP ")
  1153. uuBUF='uucpconnect:'||lf
  1154. uuBUF=uuBUF||'SubJump ckpresess'||lf||'Cmp dialrc 5'||lf||'TrueJump dodial_exit'||lf
  1155. uuBUF=uuBUF||'Set session "OUTBOUND UUCP" state "SESSION $(session) $(remote.address)"'||lf
  1156. if ROOFLOG then uuBUF=uuBUF||'RexxMsg FY ROOFLOG "CALLSTATUS $(calltask.$(remote.address)) $(line) $(callcount.$(remote.address)) $(callstart.$(remote.address)) $<time> $(remote.address) CONNECTED"'||lf
  1157. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.baud) $(baud) $(p.status) $(session) Connect $(p.host) $(host.address) $(p.session) UUCP $(p.protocol) UUCP-G"'||lf
  1158. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) uucpconnect:$(remote.address) $(lastresponse)[$(baud)]"'||lf
  1159. if ROOFLOG then uuBUF=uuBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(uucpout)"'||lf
  1160. uuBUF=uuBUF||'SetPri $(xferpri)'||lf||'Set systemcmd "$(uucico) -o -xx $(uuoptions.$(remote.address)) -s$(remote.address) -DEVICE $(device) -UNIT $(unit)"'||lf
  1161. uuBUF=uuBUF||'SubJump runasync'||lf||'ReplyCall 0'||lf||'EndSession all'||lf||'Jump aftersession'||lf
  1162. uuBUF=uuBUF||'uucp_inbound:'||lf||'CmpI ${'envpath'UUCP} FALSE'||lf||'FalseJump uucp_inbound.1'||lf
  1163. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Denied UUCP login: $(namebuf)"'||lf
  1164. uuBUF=uuBUF||'Set txt "'nl'  Sorry $(namebuf), UUCP logins are disabled during system maintenance'nl'  Call back in an hour or so, Thanks.'nl'"'||lf
  1165. uuBUF=uuBUF||'SubJump showtxt'||lf||'Jump freeline'||lf
  1166. uuBUF=uuBUF||'uucp_inbound.1:'||lf
  1167. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.baud) $(baud) $(p.status) $(session) Connect $(p.login) $(namebuf) $(p.session) UUCP $(p.protocol) UUCP-G"'||lf
  1168. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) UUCP login: $(namebuf)"'||lf
  1169. if ROOFLOG then uuBUF=uuBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(uucpin)"'||lf
  1170. uuBUF=uuBUF||'RexxMsg "SY,RY" REXX "return delstr(\"$(namebuf)\",1,2)"'||lf||'Set remote.address $(result2)'||lf
  1171. if ROOFLOG then uuBUF=uuBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Inbound UUCP Session $(remote.address)"'||lf
  1172. uuBUF=uuBUF||'Cmp $(password.$(remote.address)) ""'||lf||'TrueJump getuulogin'||lf||'SubJump getuucached'||lf||'Set pw CACHE listed 1 issecure TRUE'||lf
  1173. uuBUF=uuBUF||'Set txt "Whats the Password: "'||lf||'SubJump showtxt'||lf
  1174. uuBUF=uuBUF||'GetInbound E2 20'||lf||'Cmp $(event) LOGIN'||lf||'FalseJump do_menu'||lf
  1175. uuBUF=uuBUF||'CmpI $(remote.password) $(namebuf)'||lf||'FalseJump badlogin'||lf
  1176. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $(line) $<time> Inbound UUCP Session $(remote.sitename)"'||lf
  1177. uuBUF=uuBUF||'Set pw "$(pw) OK"'||lf
  1178. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.password) $(pw)"'||lf
  1179. uuBUF=uuBUF||'SetPri $(xferpri)'||lf||'Set systemcmd "$(uucico) -xx $(uuoptions.$(remote.address)) -Getty -D $(device) -U $(unit)"'||lf
  1180. uuBUF=uuBUF||'SubJump runasync'||lf||'Jump aftersession'||lf
  1181. uuBUF=uuBUF||'getuulogin:'||lf||'Set systemcmd "$(login) -b$(baud) -lower -oUUSPOOL:logfile -pCFG:passwd -d$(device) -u$(unit) \"$(namebuf)\""'||lf
  1182. uuBUF=uuBUF||'SubJump runasync'||lf||'Set tmprc $(RC)'||lf
  1183. uuBUF=uuBUF||'Cmp $(tmprc) 1'||lf||'TrueJump badlogin'||lf
  1184. uuBUF=uuBUF||'Cmp $(tmprc) 7'||lf||'TrueJump timeout_exit'||lf
  1185. uuBUF=uuBUF||'Cmp $(tmprc) 9'||lf||'TrueJump aftersession'||lf
  1186. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) UUCP Login returned: $(tmprc)"'||lf
  1187. uuBUF=uuBUF||'Jump aftersession'||lf
  1188. uuBUF=uuBUF||'badlogin:'||lf||'Set pw "$(pw) BAD"'||lf
  1189. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.password) $(pw)"'||lf
  1190. uuBUF=uuBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $(line) $<time> Password error $(remote.sitename) $(namebuf) [$(remote.password)]"'||lf
  1191. uuBUF=uuBUF||'Jump aftersession'||lf
  1192. end;else do
  1193. uuBUF='uucpconnect:'||lf||'Print "ERROR: UUCP is not installed\n"'||lf||'Return'||lf||'uucp_inbound:'||lf||'Send "There are no UUCP logins here'nl'"'||lf||'Return'||lf||'getuulogin:'||lf||'Print "ERROR: UUCP is not installed\n"'||lf||'Return'||lf
  1194. end
  1195. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': UucpBUF:'length(uuBUF)
  1196. return
  1197.  
  1198.  
  1199. gennotify:
  1200. say "Generating Resume Handling"
  1201. if power then do
  1202. notBUF=';WPLSCRIPT 'l_mailer'notify'||lf
  1203. notBUF=notBUF||'runsync:'||lf||'CmpI $(systemcmd) ""'||lf||'TrueReturn'||lf||'System $(systemcmd)'||lf'Clear systemcmd'||lf||'Return'||lf
  1204. end
  1205. else notBUF=""
  1206.  
  1207. notBUF=notBUF||'showdevowner:'||lf||'SubJump 'l_mailer'!cleargui'||lf
  1208. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(Owner)"'||lf
  1209. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(Owner) owns device - Waiting"'||lf
  1210. if ROOFLOG then notBUF=notBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(humanout)'||lf
  1211. notBUF=notBUF||'Set RC TRUE'||lf
  1212. notBUF=notBUF||'Return'||lf
  1213.  
  1214. notBUF=notBUF||'set_resume:'||lf||'Set  resumefile.$(remote.address) $(remfile) resume.cmd "$(resumedir)$(remote.domain).$(remote.zone).$(remote.net).$(remote.node).$(remote.point)"'||lf
  1215. if exists("MAIL:ResumeFill") | exists("RAM:ResumeFill") then notBUF=notBUF||'System "ResumeFill $(resume.cmd) $(remote.address) $(tempfile) $(remfile)"'||lf
  1216. else do
  1217. say;say mwarn" ResumeFill command not found, using ECHO"
  1218. notBUF=notBUF||'System "echo  >$(resume.cmd) resume:"'||lf||'System "echo >>$(resume.cmd) Set resumefull.$(remote.address) $(tempfile) resumefile.$(remote.address) $(remfile) resume TRUE"'||lf
  1219. notBUF=notBUF||'System "echo >>$(resume.cmd) XprSetFile $(tempfile) $(remfile) F"'||lf||'System "echo >>$(resume.cmd) return"'||lf
  1220. end
  1221. notBUF=notBUF||'Return'||lf
  1222. notBUF=notBUF||'get_resume:'||lf||'Set resume.cmd "$(resumedir)$(remote.domain).$(remote.zone).$(remote.net).$(remote.node).$(remote.point)"'||lf
  1223. notBUF=notBUF||'RexxMsg SY REXX "return exists(\"$(resume.cmd)\")"'||lf||'Set RC $(result1)'||lf||'FalseJump get_resume_none'||lf
  1224. notBUF=notBUF||'LoadScript xresume $(resume.cmd)'||lf||'FalseJump get_resume_loaderr'||lf||'SubJump xresume!resume'||lf||'LoadScript xresume ""'||lf||'Return'||lf
  1225. notBUF=notBUF||'get_resume_loaderr:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Load failed RC:$(RC) Xresume[$(resume.cmd)]"'||lf
  1226. notBUF=notBUF||'get_resume_none:'||lf||'Set resume FALSE'||lf||'Return'||lf
  1227. notBUF=notBUF||'clr_resume:'||lf||'Set resume.cmd "$(resumedir)$(remote.domain).$(remote.zone).$(remote.net).$(remote.node).$(remote.point)"'||lf
  1228. if wpldebug then notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Deleting Xresume[$(resume.cmd)]"'||lf
  1229. notBUF=notBUF||'LoadScript xresume ""'||lf||'RexxMsg SY REXX "call Delete(\"$(resume.cmd)\")"'||lf
  1230. notBUF=notBUF||'Clear resumefull.$(remote.address) resumefile.$(remote.address)'||lf||'Return'||lf
  1231. notBUF=notBUF||'prefullname:'||lf
  1232. notBUF=notBUF||'Set RC $(fsend)'||lf||'TrueJump preoutfullname'||lf
  1233. notBUF=notBUF||'Set RC $(resume)'||lf||'TrueJump preresume'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) PreFullName Receiving:$(localfile)[$(remfile)][$(filesize)] from $(remote.address)"'||lf
  1234. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Receiving $(remfile)"'||lf||'Return'||lf
  1235. if power then do
  1236. notBUF=notBUF||'preoutfullname:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) PreFullName Sending:$(localfile)[$(remfile)][$(filesize)] to $(remote.address)"'||lf
  1237. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Sending $(localfile)[$(remfile)] $(p.protocol) $(protocol)"'||lf||'Return'||lf
  1238. end
  1239. notBUF=notBUF||'postfullname:'||lf
  1240. if (power | sendbull | sendbanner) then do
  1241. notBUF=notBUF||'Set tmprc $(RC)'||lf||'Cmp $(protocol) ASCII'||lf||'FalseJump tstrc'||lf
  1242. notBUF=notBUF||'Set tmprc TRUE filestatus "Ascii Send OK" cps 240 '||lf
  1243. notBUF=notBUF||'tstrc:'||lf||'Set RC $(tmprc)'||lf
  1244. end
  1245. notBUF=notBUF||'FalseJump xfererr'||lf
  1246. notBUF=notBUF||'Set RC $(fsend)'||lf||'TrueJump postoutfullname'||lf
  1247. notBUF=notBUF||'Set RC $(resume)'||lf||'TrueJump postresume'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) PostFullName $(filestatus):$(localfile)[$(remfile)] $(protocol) CPS:$(CPS) ($(CPSP)%) Size:$(filesize)"'||lf
  1248. notBUF=notBUF||'Jump in_notify'||lf
  1249. notBUF=notBUF||'postoutfullname:'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Sent $(localfile) for $(remfile)"'||lf
  1250. notBUF=notBUF||'SubJump 'notifylabel'out_notify'||lf||'Set fsend FALSE'||lf||'Return'||lf
  1251. notBUF=notBUF||'preresume:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Resuming $(protocol) receive $(remfile)[$(filesize)] $(resumefull.$(remote.address)) $(resumefile.$(remote.address))"'||lf
  1252. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Resuming $(remfile)"'||lf||'Return'||lf
  1253. notBUF=notBUF||'preinbound:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Receiving:$(remfile) [$(filesize)] as $(tempfile) from $(remote.address)"'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Receiving $(remfile)"'||lf
  1254. notBUF=notBUF||'Set RC $(resume)'||lf||'FalseSubJump 'notifylabel'set_resume'||lf||'Return'||lf
  1255. notBUF=notBUF||'postresume:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) PostResume $(filestatus):$(localfile)[$(remfile)] $(protocol) CPS:$(CPS)[$(CPSP)%] Size:$(filesize)"'||lf||'CmpI $(resumefull.$(remote.address)) $(localfile)'||lf
  1256. notBUF=notBUF||'FalseJump in_notify'||lf||'Set remfile $(resumefile.$(remote.address)) infile $(inbound)$(remfile)'||lf
  1257. notBUF=notBUF||'RexxMsg SY REXX "call rename(\"$(localfile)\",\"$(inbound)\"||\"$(remfile)\")"'||lf||'Jump in_notify'||lf
  1258. notBUF=notBUF||'postinbound:'||lf||'FalseJump xfererr'||lf||'in_notify:'||lf
  1259. if wpldebug then notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Expected:[$(resumefile.$(remote.address))] Recd:[$(remfile)]"'||lf
  1260. notBUF=notBUF||'CmpI $(resumefile.$(remote.address)) $(remfile)'||lf
  1261. notBUF=notBUF||'TrueSubJump 'notifylabel'clr_resume'||lf
  1262. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) $(filestatus):$(infile)[$(remfile)] CPS:$(CPS) ($(CPSP)%) Size:$(filesize)"'||lf
  1263. if ROOFLOG then notBUF=notBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(bytesin) $(filesize)"'||lf
  1264. notBUF=notBUF||'Set RC $(FTS1)'||lf||'FalseJump filenotify'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) FTS1 Receive $(remfile)"'||lf||'SetA remote fidonet#1:1/1.1'||lf
  1265. call writech('STDOUT','Generating WhenRecd Processing: REQ ')
  1266. notBUF=notBUF||'filenotify:'||lf
  1267. if ~umbrella & addfreq then do
  1268. if gazebo then notBUF=notBUF||'Set systemcmd "$(freqcmd)"'||lf
  1269. else notBUF=notBUF||'Set systemcmd "Rx $(rexxdir)STARTRFS 'u_mailer' $(line) $(baud) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)"'||lf
  1270. notBUF=notBUF||'Pattern $(remfile) #?.REQ'||lf||'FalseJump show_recd'||lf||'Set RC $(host.freq)'||lf||'FalseJump badreq'||lf
  1271. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Processing REQ from $(remote.address)"'||lf||'Jump runsync'||lf||'badreq:'||lf
  1272. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.address) ignored $(session) No-FREQS"'||lf
  1273. notBUF=notBUF||'show_recd:'||lf
  1274. end /*NOT UMBRELLA*/
  1275. if ROOFLOG then notBUF=notBUF||'RexxMsg FY ROOFLOG "SHOWRECD $(line) $(remfile) $(remote.address) $(filesize) $(cps) $(baud)"'||lf
  1276.  
  1277. notBUF=notBUF||'Cmp $(issecure) TRUE'||lf||'TrueJump knownsite'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remfile) from $(remote.address) is non-secure"'||lf
  1278. if power then notBUF=notBUF||'Jump logfiles'||lf
  1279. else notBUF=notBUF||'Return'||lf
  1280.  
  1281. call writech('STDOUT','SORT ')
  1282. notBUF=notBUF||'knownsite:'||lf
  1283. notBUF=notBUF||'Cmp $(multihub) FALSE'||lf||'TrueJump notmulti1'||lf
  1284. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Sorting $(remfile) from $(remote.address) with ${'envpath'SORTRECD}" '||lf
  1285. notBUF=notBUF||'Set systemcmd "${'envpath'SORTRECD}"'||lf||'Jump ck_mail1'||lf
  1286. call writech('STDOUT','MAIL ')
  1287. notBUF=notBUF||'notmulti1:'||lf||'Set systemcmd "${'envpath'ARCRECD}"'||lf
  1288. notBUF=notBUF||'ck_mail1:'||lf||'Pattern $(remfile) ????????.(MO|TU|WE|TH|FR|SA|SU)[0-9]'||lf||'TrueJump ck_mail22'||lf
  1289.  
  1290. notBUF=notBUF||'ck_mail11:'||lf||'Cmp $(multihub) FALSE'||lf||'TrueJump notmulti2'||lf
  1291. notBUF=notBUF||'Set systemcmd "${'envpath'SORTRECD}"'||lf||'Jump ck_mail2'||lf
  1292. notBUF=notBUF||'notmulti2:'||lf||'Set systemcmd "${'envpath'PKTRECD}"'||lf
  1293. notBUF=notBUF||'ck_mail2:'||lf||'Pattern $(remfile) ????????.PKT'||lf||'FalseJump ck_other'||lf
  1294. notBUF=notBUF||'ck_mail22:'||lf||'Set mail TRUE'||lf||'TrueSubJump runsync'||lf
  1295. notBUF=notBUF||'ck_other:'||lf
  1296. if adduucp then do
  1297. call writech('STDOUT','UUCP ')
  1298. notBUF=notBUF||'Set systemcmd "${'envpath'UUCPRECD}"'||lf||'Pattern $(remfile) X.#?'||lf||'TrueJump runsync'||lf
  1299. end
  1300. call writech('STDOUT','TIC ')
  1301. notBUF=notBUF||'Set systemcmd "${'envpath'TICRECD}"'||lf||'Pattern $(remfile) #?.TIC '||lf
  1302. if power then notBUF=notBUF||'FalseJump logfiles'||lf
  1303. else notBUF=notBUF||'FalseReturn'||lf
  1304. notBUF=notBUF||'Set tic TRUE'||lf||'Jump runsync'||lf
  1305.  
  1306. if power then do
  1307. call writech('STDOUT','UPLOAD ')
  1308. notBUF=notBUF||'logfiles:'||lf||'Cmp $(session) UPLOAD'||lf||'FalseReturn'||lf||'System "Echo >>LOG:needdesc \"$(remfile) $(infile)\""'||lf||'Return'||lf
  1309. end
  1310. notBUF=notBUF||'preoutbound:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Sending:$(localfile) [$(filesize)] as $(remfile) to $(remote.address)"'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) Sending $(remfile)"'||lf||'Return'||lf
  1311. notBUF=notBUF||'postoutbound:'||lf||'FalseJump xfererr'||lf||'Cmp $(filesize) 0'||lf||'TrueJump zeroerr'||lf
  1312. notBUF=notBUF||'out_notify:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(filestatus):$(localfile)[$(remfile)] $(protocol) CPS:$(CPS) ($(CPSP)%) Size:$(filesize)"'||lf
  1313. if ROOFLOG then do
  1314.   notBUF=notBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(bytesout) $(filesize)"'||lf
  1315.   notBUF=notBUF||'Cmp $(protocol) ASCII'||lf||'TrueReturn'||lf
  1316.   notBUF=notBUF||'RexxMsg FY ROOFLOG "SHOWSENT $(line) $(remfile) $(remote.address) $(filesize) $(cps) $(baud)"'||lf
  1317. end
  1318. notBUF=notBUF||'Return'||lf
  1319. notBUF=notBUF||'zeroerr:'||lf||'Set filestatus "$(filestatus) zero-length"'||lf
  1320. notBUF=notBUF||'xfererr:'||lf||'Set filestatus "$(filestatus) Resume:$(resume) Send:$(fsend) RC:$(RC)" '||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) transfer $(filestatus):$(remfile)"'||lf
  1321. notBUF=notBUF||'Set fsend FALSE'||lf
  1322. notBUF=notBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Transfer $(filestatus):$(remfile)"'||lf
  1323. notBUF=notBUF||'Return'||lf
  1324. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': NotBUF:'length(notBUF)
  1325.  
  1326. if power then do
  1327. call open('not',notifywpl,"W")
  1328. call writech('not',notBUF)
  1329. call close('not')
  1330. drop not notBUF
  1331. say;Say "Wrote "notifywpl
  1332. end
  1333. return
  1334.  
  1335. genhost:
  1336. say 'Generating WPL Function Host'
  1337. sBUF=sBUF||'startup-1:'||lf||'Set line 1 modem "WPL Function Host"'||lf||'SubJump setglobals'||lf||'SubJump 'l_mailer'cfg!setstatics'||lf
  1338. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Launched Slave:$(line) $(modem)"'||lf
  1339. sBUF=sBUF||'SetStatus NULL:'||lf
  1340. if ROOFLOG then do
  1341. sBUF=sBUF||'Set sl 70 speech  "Launched Slave:$(line) $(modem)"'||lf
  1342. sBUF=sBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): $(speech)"'||lf
  1343. if addspeech then sBUF=sBUF||'SubJump sayit'||lf
  1344. end
  1345. if roof then do
  1346.     if exists("RPDIR:QUEUEMGR") then sBUF=sBUF||'System "Run >NIL: QUEUEMGR SCHED"'||lf
  1347.     else sBUF=sBUF||'RexxMsg "" AREXX "$(rexxdir)QUEUEMGR.rexx SCHED"'||lf
  1348. end
  1349. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Waiting for a Command"'||lf
  1350. sBUF=sBUF||'exeloop:'||lf||'Set CallInterupt FALSE'||lf||'Clear state remote.text remote.address remote.network'||lf
  1351. sBUF=sBUF||'CheckCall'||lf||'TrueJump ck_function'||lf||'Set RC $<abort>'||lf||'TrueJump mailer_exit'||lf
  1352. sBUF=sBUF||'Set CallInterupt TRUE'||lf||'WaitEvent 60'||lf||'Jump exeloop'||lf
  1353. sBUF=sBUF||'ck_function:'||lf||'Cmp $(remote.network) UUCP'||lf||'FalseJump ck_func'||lf
  1354. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' Received Call: $(remote.text)"'||lf
  1355. sBUF=sBUF||'Set state "EXECUTING Script $(remote.text)"'||lf
  1356. if sc_modem then sBUF=sBUF||'SetStatus "$(openstatus)"'||lf||'Print "$(state)\n"'||lf
  1357. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Executing WPLrx script:$(rexxdir)$(remote.text)"'||lf
  1358. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "CALLSTATUS 0 $(line) 1 $<time> $<time> $(remote.text) RUNNING"'||lf
  1359. sBUF=sBUF||'Address REXX "$(rexxdir)$(remote.text)"'||lf||'ReplyCall $(RC)'||lf
  1360. if ROOFLOG then sBUF=sBUF||'RexxMsg FY ROOFLOG "CALLSTATUS 0 $(line) 1 $<time> $<time> $(remote.text) COMPLETED"'||lf
  1361. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Waiting for a Command"'||lf
  1362. sBUF=sBUF||'SetStatus NULL:'||lf||'Jump exeloop'||lf
  1363. sBUF=sBUF||'ck_func:'||lf||'Cmp $(remote.network) TEXT'||lf||'FalseJump exeloop'||lf
  1364. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' Received Call: $(remote.text)"'||lf
  1365. sBUF=sBUF||'Set state "EXECUTING Function $(remote.text)"'||lf
  1366. if sc_modem then sBUF=sBUF||'SetStatus "$(openstatus)"'||lf||'Print "$(state)\n"'||lf
  1367. sBUF=sBUF||'Pattern $(cmdlist) #?$(remote.text)#?'||lf||'FalseJump exeloop'||lf
  1368. sBUF=sBUF||'Set systemcmd $(cmd.$(remote.text))'||lf
  1369. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Executing [$(systemcmd)]"'||lf
  1370. sBUF=sBUF||'SubJump runsync'||lf||'ReplyCall $(RC)'||lf
  1371. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state) returned:$(RC)"'||lf
  1372. sBUF=sBUF||'SetStatus NULL:'||lf||'Clear state remote.address remote.network remote.text'||lf
  1373. sBUF=sBUF||'Jump exeloop'||lf
  1374. sBUF=sBUF||'mailer_exit:'||lf||'Set state "$(modem) CLOSE"'||lf
  1375. sBUF=sBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Closing Slave$(line)"'||lf
  1376. sBUF=sBUF||'Cmp $(exit) RESTART'||lf||'FalseJump closelogs'||lf||'Jump recompile'||lf
  1377. return
  1378.  
  1379. genmain:
  1380. mainBUF=';WPLSCRIPT 'l_mailer||lf||';$VER: 'u_mailer 'v'smver' GenMailer v'genver||lf
  1381. mainBUF=mainBUF||'Print "You Goofed up your config, eh!\n"'||lf||'Return'||lf
  1382. mainBUF=mainBUF||'wazoo: Jump j_wazoo'||lf
  1383. if addemsi then do
  1384. mainBUF=mainBUF||'pwemsi: Jump j_pwemsi'||lf
  1385. if CKDOMAIN then mainBUF=mainBUF||'ck_emsidomain: Jump j_ck_emsidomain'||lf
  1386. end
  1387. if sendbanner then mainBUF=mainBUF||'sendbanner: Jump j_sendbanner'||lf
  1388. if sendbull then mainBUF=mainBUF||'sendbull: Jump j_sendbull'||lf
  1389. if (sendbanner | sendbull | power) then do
  1390.     mainBUF=mainBUF||'ascii_start: Jump j_ascii_start'||lf
  1391.     mainBUF=mainBUF||'ascii_end: Jump j_ascii_end'||lf
  1392. end
  1393. if ~umbrella then do
  1394.     mainBUF=mainBUF||'getlookup: Jump j_getlookup'||lf
  1395.     mainBUF=mainBUF||'getuulookup: Jump j_getuulookup'||lf
  1396. end
  1397. mainBUF=mainBUF||'getcached: Jump j_getcached'||lf
  1398. if ~umbrella then mainBUF=mainBUF||'getuucached: Jump j_getuucached'||lf
  1399. mainBUF=mainBUF||'ck_multiftn: Jump j_ck_multiftn'||lf
  1400. mainBUF=mainBUF||'xprdisplay: Jump j_xprdisplay'||lf
  1401. mainBUF=mainBUF||'xprend: Jump j_xprend'||lf
  1402. mainBUF=mainBUF||'clearglobals: Jump j_clearglobals'||lf
  1403. mainBUF=mainBUF||'setglobals: Jump j_setglobals'||lf
  1404. if ~umbrella then do
  1405.     mainBUF=mainBUF||'do_menu: Jump j_do_menu'||lf
  1406.     mainBUF=mainBUF||'user_input: Jump j_user_input'||lf
  1407. end
  1408. if power then do
  1409.     mainBUF=mainBUF||'menu_input: Jump j_menu_input'||lf
  1410.     mainBUF=mainBUF||'get_user: Jump j_get_user'||lf
  1411.     mainBUF=mainBUF||'showmenu: Jump j_showmenu'||lf
  1412. if ~nobbs then mainBUF=mainBUF||'loadbbs: Jump j_loadbbs'||lf
  1413.     mainBUF=mainBUF||'loadwplrx: Jump j_loadwplrx'||lf
  1414.     mainBUF=mainBUF||'sendhelp: Jump j_sendhelp'||lf
  1415.     mainBUF=mainBUF||'sendtext: Jump j_sendtext'||lf
  1416. if ~nodoor then mainBUF=mainBUF||'loaddoor: Jump j_loaddoor'||lf
  1417. if genmenufile then mainBUF=mainBUF||'sendmenu: Jump j_sendmenu'||lf
  1418. end
  1419.  
  1420.     mainBUF=mainBUF||'cleargui:'||lf
  1421.     mainBUF=mainBUF||'RexxMSG NY LOGPROC "PutLine 'statgroup' $(p.response) $(p.baud) $(p.number) $(p.password) $(p.session) $(p.protocol) $(p.login) $(p.host) $(p.remote) $(p.rsysop) $(p.hoffer) $(p.roffer) $(p.hfreqs) $(p.rfreqs) $(p.inbound) $(p.domain)"'||lf
  1422.     mainBUF=mainBUF||'Return'||lf
  1423. if addspeech then do
  1424.     mainBUF=mainBUF||'sayit:'||lf||'RexxMsg SY REXX "return (GetClip('SAYLEVEL') >= $(sl))"'||lf||'Set RC $(result1)'||lf||'TrueReturn'||lf||'System "run >nil: SAY \"$(speech).\""'||lf
  1425.     mainBUF=mainBUF||'Clear speech'||lf||'Return'||lf
  1426. end
  1427.     mainBUF=mainBUF||'showtxt:'||lf||'Print $(txt)'||lf||'Send $(txt)'||lf||'Clear txt'||lf||'Return'||lf
  1428.  
  1429.     mainBUF=mainBUF||'runsync:'||lf||'CmpI $(systemcmd) ""'||lf||'TrueReturn'||lf||'Set tstate $(state) state "EXTERNAL"'||lf
  1430. if wpldebug then mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Executing: $(systemcmd)" '||lf
  1431.     mainBUF=mainBUF||'System $(systemcmd)'||lf||'Set state $(tstate)'||lf||'Clear systemcmd tstate'||lf||'Return'||lf
  1432.     mainBUF=mainBUF||'runasync:'||lf||'CmpI $(systemcmd) ""'||lf||'TrueReturn'||lf
  1433. if wpldebug then mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Executing: $(systemcmd)" '||lf
  1434.     mainBUF=mainBUF||'RexxMsg SY REXX "Address COMMAND \"$(systemcmd)\""'||lf||'Set RC $(RESULT1)'||lf||'Clear systemcmd'||lf||'Return'||lf
  1435. if ~umbrella then do
  1436. mainBUF=mainBUF||'j_getlookup:'||lf||'Seta remote ${$(line).domain}#${$(line).zone}:${$(line).net}/${$(line).node}.${$(line).point}'||lf
  1437. mainBUF=mainBUF||'Set pw LOOKUP remote.number ${$(line).number} remote.password ${$(line).password}'||lf
  1438. mainBUF=mainBUF||'Set remote.sysop ${$(line).sysop} remote.sitename ${$(line).sitename}'||lf||'Set useline $(line) dial $(DialString)'||lf||'Jump get_exit'||lf
  1439. mainBUF=mainBUF||'j_getuulookup:'||lf||'Address REXX "$(rexxdir)uulookup.wplrx $(remote.address)"'||lf
  1440. mainBUF=mainBUF||'Set pw LOOKUP remote.sitename $(remote.address) remote.sysop root"'||lf||'Set useline $(line) dial $(DialString)'||lf||'Jump get_exit'||lf
  1441. end
  1442. mainBUF=mainBUF||'j_getcached:'||lf||'Seta remote $(remote.address)'||lf
  1443. if ~umbrella then mainBUF=mainBUF||'j_getuucached:'||lf
  1444. mainBUF=mainBUF||'Set pw CACHE remote.number $(number.$(remote.address)) remote.password $(password.$(remote.address))'||lf
  1445. mainBUF=mainBUF||'Set remote.sysop $(sysop.$(remote.address)) remote.sitename $(sitename.$(remote.address))'||lf
  1446. mainBUF=mainBUF||'get_exit:'||lf
  1447. mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.host) $(host.address) $(p.password) $(pw) $(p.remote) $(remote.address) $(p.number) $(remote.number) $(p.rsysop) $(remote.sysop) $(remote.sitename)"'||lf
  1448. mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Network:$(remote.network) Address:$(remote.address)"'||lf
  1449. mainBUF=mainBUF||'Return'||lf
  1450. mainBUF=mainBUF||'j_ck_multiftn:'||lf||'Set RC $(multi.$(remote.address))'||lf||'FalseReturn'||lf
  1451. mainBUF=mainBUF||'SubJump 'l_mailer'!fidonethost'||lf
  1452. mainBUF=mainBUF||'Set inbound $(nonsecure) multihub TRUE '||lf
  1453. mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) NONSECURE"'||lf
  1454. mainBUF=mainBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Tagged $(remote.address) for FTN mail sort"'||lf||'Set RC 0'||lf||'Return'||lf
  1455. return
  1456.  
  1457. genemsi:
  1458. call writech('STDOUT',"EMSI ")
  1459. if ~noanswer then do
  1460. emsiBUF=emsiBUF||'login_emsi:'||lf
  1461. emsiBUF=emsiBUF||'Pattern $(event) #?Portal of Power#?"'||lf||'FalseJump NoPopEmsi'||lf
  1462. /*emsiBUF=emsiBUF||'PopEmsi:'||lf||'Send "|**EMSI_NAKA77E|<CTRL-M>"'||lf    */
  1463. emsiBUF=emsiBUF||'PopEmsi:'||lf||'SmartSend "**EMSI_NAKEEC3\r"'||lf
  1464. emsiBUF=emsiBUF||'NoPopEmsi:'||lf
  1465. emsiBUF=emsiBUF||'SetPri $(negopri)'||lf||'Print "Inbound EMSI\n"'||lf
  1466. emsiBUF=emsiBUF||'Set host.addresses "'strip(myakas)'"'||lf
  1467. /*emsiBUF=emsiBUF||'Send "|**EMSI_NAKA77E|'cr'"'||lf */
  1468.  
  1469. emsiBUF=emsiBUF||'XprSetup wplemsi.library "Receive"'||lf||'XprReceive ""'||lf||'XprClose'||lf
  1470. emsiBUF=emsiBUF||'set RC $(EMSI)'||lf||'FalseJump bademsilogin'||lf
  1471. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) EMSI HandShake OK $(remote.address)"'||lf
  1472. if FIXDOMAIN then emsiBUF=emsiBUF||'Address REXX "$(rexxdir)ACVT.wplrx $(remote.addresses)"'||lf
  1473. emsiBUF=emsiBUF||'Seta Remote $(remote.addresses)'||lf
  1474. if ~FIXDOMAIN & CKDOMAIN then emsiBUF=emsiBUF||'SubJump ck_emsidomain'||lf
  1475. emsiBUF=emsiBUF||'SubJump pwemsi'||lf
  1476. if KILLBAD then emsiBUF=emsiBUF||'FalseJump freeline'||lf
  1477. else do
  1478.     emsiBUF=emsiBUF||'TrueJump ppwok'||lf
  1479.     emsiBUF=emsiBUF||'Set remote.link "$(remote.link),NPU" inbound $(nonsecure)'||lf
  1480.     emsiBUF=emsiBUF||'BeginSession BADPASSWORD'||lf
  1481.     emsiBUF=emsiBUF||'ppwok:'||lf
  1482. end
  1483. emsiBUF=emsiBUF||'Set remote.freq FALSE'||lf||'Pattern $(remote.compat) #?NRQ#?'||lf
  1484. emsiBUF=emsiBUF||'TrueJump nrqemsi'||lf||'Set remote.freq TRUE'||lf
  1485. emsiBUF=emsiBUF||'nrqemsi:'||lf||'Pattern $(remote.link) #?PUP#?'||lf||'FalseJump pupemsi'||lf
  1486. emsiBUF=emsiBUF||'BeginSession "$(remote.address) EMSI"'||lf
  1487. emsiBUF=emsiBUF||'pupemsi:'||lf||'Pattern $(remote.link) #?NPU#?'||lf||'TrueJump npuemsi'||lf
  1488. emsiBUF=emsiBUF||'BeginSession $(remote.address)'||lf
  1489.  
  1490. if KNOWNAKAONLY then do
  1491. emsiBUF=emsiBUF||'Cmp $(remote.number) ""'||lf||'TrueJump npuemsi'||lf
  1492. emsiBUF=emsiBUF||'getakalist:'||lf
  1493. emsiBUF=emsiBUF||'RexxMsg "SY,RY" REXX "return(right(compress(\"$(remote.number)\",\"-\"),7))"'||lf
  1494. emsiBUF=emsiBUF||'BeginSession "$(akas.$(result2))"'||lf
  1495. end;else do
  1496. emsiBUF=emsiBUF||'BeginSession "$(remote.addresses) EMSI"'||lf
  1497. end
  1498. emsiBUF=emsiBUF||'npuemsi:'||lf||'Set state "SESSION INBOUND $(remote.address)"'||lf
  1499. if ROOFLOG then emsiBUF=emsiBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Inbound EMSI FTN Session $(remote.address) @ $(baud)"'||lf
  1500. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) System:[$(remote.sitename)][$(remote.address)] Sysop:$(remote.sysop)"'||lf
  1501. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Mailer:$(remote.mailer) v$(remote.version)[$(remote.product)]"'||lf
  1502. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AKAs:$(remote.addresses)"'||lf
  1503. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Pass:[$(remote.password)] $(password.$(remote.address))"'||lf
  1504. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Remote Serial:$(remote.serial)"'||lf
  1505. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Remote Link:$(remote.link) Compt:$(remote.compat)"'||lf
  1506. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Host Link:$(host.link) Compt:$(host.compat)"'||lf
  1507. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Flags:$(remote.flags),$(remote.baud)"'||lf
  1508. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  1509. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(p.host) $(host.address) $(p.remote) $(remote.address) $(p.rsysop) $(remote.sysop) $(remote.sitename) $(p.login) $(remote.mailer) v$(remote.version) $<time>"'||lf
  1510. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.hoffer) $(host.compat) $(host.link) $(p.roffer) $(remote.compat) $(remote.link) $(p.rfreqs) $(remote.freq) $(p.domain) $(remote.domain)"'||lf
  1511. if forcesort then emsiBUF=emsiBUF||'Set multihub TRUE'||lf
  1512. emsiBUF=emsiBUF||'Pattern $(Host.Compat) "#?DZA#?"'||lf||'TrueJump DirectZapIn'||lf
  1513. emsiBUF=emsiBUF||'Pattern $(Host.Compat) "#?ZAP#?"'||lf||'TrueJump ZedZapIn'||lf
  1514. emsiBUF=emsiBUF||'Pattern $(Host.Compat) "#?ZMO#?"'||lf||'TrueJump ZedZipIn'||lf
  1515. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "KER#?"'||lf||'TrueJump KermitIn'||lf */
  1516. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "JAN#?"'||lf||'TrueJump JanusIn'||lf */
  1517. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "HYD#?"'||lf||'TrueJump HydraIn'||lf */
  1518. emsiBUF=emsiBUF||'Pattern $(Host.Compat) "#?SLK#?"'||lf||'TrueJump SeaLinkIn'||lf
  1519. emsiBUF=emsiBUF||'Pattern $(Host.Compat) "#?TLK#?"'||lf||'TrueJump TeLinkIn'||lf
  1520. emsiBUF=emsiBUF||'Jump dietifnain'||lf
  1521.  
  1522. emsiBUF=emsiBUF||'bademsilogin:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) EMSI HandShake Failed"'||lf
  1523. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) BADEMSI $(remote.addresses)"'||lf
  1524. emsiBUF=emsiBUF||'Clear namebuf'||lf||'Jump freeline'||lf
  1525.  
  1526. emsiBUF=emsiBUF||'j_pwemsi:'||lf
  1527. emsiBUF=emsiBUF||'Cmp $(password.$(remote.address)) ""'||lf||'TrueJump notincache'||lf
  1528. emsiBUF=emsiBUF||'CmpI $(password.$(remote.address)) $(remote.password)'||lf||'FalseJump badpwemsi'||lf
  1529. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Password:OK $(remote.address)"'||lf
  1530. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) SECURE $(p.password) CACHE OK"'||lf
  1531. emsiBUF=emsiBUF||'Set listed 1 issecure TRUE inbound $(inbound.$(remote.domain)) RC TRUE'||lf||'Return'||lf
  1532.  
  1533. emsiBUF=emsiBUF||'notincache:'||lf
  1534. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Password: NOCACHE $(remote.address) $(remote.number)"'||lf
  1535. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) NONSECURE $(p.password) NOCACHE"'||lf
  1536. emsiBUF=emsiBUF||'Set listed 0 issecure FALSE inbound $(nonsecure) RC TRUE'||lf||'Return'||lf
  1537.  
  1538. emsiBUF=emsiBUF||'badpwemsi:'||lf
  1539. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Password: BAD $(remote.address) His:[$(remote.password)] Ours:[$(password.$(remote.address))]"'||lf
  1540. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) NONSECURE $(p.password) CACHE BAD"'||lf
  1541. emsiBUF=emsiBUF||'Set listed 0 issecure FALSE inbound $(nonsecure) RC FALSE'||lf||'Return'||lf
  1542. end/* not nonasnwer */
  1543.  
  1544. emsiBUF=emsiBUF||'do_emsi:'||lf||'SetPri $(negopri)'||lf||'Print "Outbound EMSI\n"'||lf
  1545. if primary then emsiBUF=emsiBUF||'Set host.link "8N1,PUP"'||lf
  1546.            else emsiBUF=emsiBUF||'Set host.link "8N1,PUA"'||lf
  1547. emsiBUF=emsiBUF||'Set RC $(nopickup)'||lf||'FalseJump do_emsi.1'||lf
  1548. emsiBUF=emsiBUF||'Set host.link "8N1,NPU"'||lf
  1549. emsiBUF=emsiBUF||'do_emsi.1:'||lf
  1550. emsiBUF=emsiBUF||'XprSetup wplemsi.library "Outbound Emsi"'||lf||'XprSend ""'||lf||'XprClose'||lf
  1551. emsiBUF=emsiBUF||'set RC $(EMSI)'||lf||'FalseJump bademsihandshake'||lf
  1552. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) EMSI HandShake OK"'||lf
  1553. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) EMSI_REQ"'||lf
  1554. if FIXDOMAIN then emsiBUF=emsiBUF||'Address REXX "$(rexxdir)ACVT.wplrx $(remote.addresses)"'||lf
  1555. emsiBUF=emsiBUF||'Pattern $(remote.link) #?HAT#?'||lf||'TrueJump hatemsi'||lf
  1556. emsiBUF=emsiBUF||'Seta Remote $(remote.addresses)'||lf||'SubJump ck_emsipoint'||lf
  1557. emsiBUF=emsiBUF||'Pattern $(remote.link) #?HXT#?'||lf||'FalseJump hxtemsi'||lf
  1558. emsiBUF=emsiBUF||'Set MinSendPri 60'||lf
  1559. emsiBUF=emsiBUF||'hxtemsi:'||lf
  1560. if KNOWNAKAONLY then do
  1561. emsiBUF=emsiBUF||'Set RC "$(akas.$(number.$(remote.address)))"'||lf||'FalseJump noakalist'||lf
  1562. emsiBUF=emsiBUF||'BeginSession "$(akas.$(number.$(remote.address)))"'||lf
  1563. emsiBUF=emsiBUF||'Set RC $(remote.freq)'||lf||'FalseJump hatemsi'||lf||'FindFreq "$(akas.$(number.$(remote.address)))"'||lf
  1564. emsiBUF=emsiBUF||'Jump hatemsi'||lf
  1565. emsiBUF=emsiBUF||'noakalist:'||lf||'BeginSession $(remote.address)'||lf
  1566. emsiBUF=emsiBUF||'Set RC $(remote.freq)'||lf||'FalseJump hatemsi'||lf||'FindFreq $(called)'||lf
  1567. end;else do
  1568. emsiBUF=emsiBUF||'BeginSession "$(remote.addresses) EMSI"'||lf
  1569. emsiBUF=emsiBUF||'Set RC $(remote.freq)'||lf||'FalseJump hatemsi'||lf||'FindFreq $(called)'||lf
  1570. end
  1571. emsiBUF=emsiBUF||'hatemsi:'||lf
  1572. if forcesort then emsiBUF=emsiBUF||'Set multihub TRUE'||lf
  1573. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Called:$(called)"'||lf
  1574. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AKAs:$(remote.addresses)"'||lf
  1575. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) System:[$(remote.sitename)][$(remote.address)] Sysop:$(remote.sysop)"'||lf
  1576. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Mailer:$(remote.mailer) v$(remote.version)[$(remote.product)]"'||lf
  1577. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Pass:[$(remote.password)] $(password.$(remote.address))"'||lf
  1578. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Remote Serial:$(remote.serial)"'||lf
  1579. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Remote Link:$(remote.link) Compt:$(remote.compat)"'||lf
  1580. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Host Link:$(host.link) Compt:$(host.compat)"'||lf
  1581. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Flags:$(remote.flags),$(remote.baud)"'||lf
  1582. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  1583. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.host) $(host.address) $(p.remote) $(remote.address) $(p.rsysop) $(remote.sysop) $(remote.sitename) $(p.login) $(remote.mailer) v$(remote.version) $<time>"'||lf
  1584. emsiBUF=emsiBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.hoffer) $(host.compat) $(host.link) $(p.roffer) $(remote.compat) $(remote.link) $(p.rfreqs) $(remote.freq) $(p.domain) $(remote.domain)"'||lf
  1585. emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "DZA#?"'||lf||'TrueJump DirectZapOut'||lf
  1586. emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "ZAP#?"'||lf||'TrueJump ZedZapOut'||lf
  1587. emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "ZMO#?"'||lf||'TrueJump ZedZipOut'||lf
  1588. emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "SLK#?"'||lf||'TrueJump SeaLinkOut'||lf
  1589. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "KER#?"'||lf||'TrueJump KermitOut'||lf */
  1590. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "JAN#?"'||lf||'TrueJump JanusOut'||lf */
  1591. /*emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "HYD#?"'||lf||'TrueJump HydraOut'||lf */
  1592. emsiBUF=emsiBUF||'Pattern $(Remote.Compat) "TLK#?"'||lf||'TrueJump TeLinkOut'||lf
  1593. emsiBUF=emsiBUF||'Jump dietifnaout'||lf
  1594.  
  1595. emsiBUF=emsiBUF||'ck_emsipoint:'||lf
  1596. emsiBUF=emsiBUF||'CmpI $(remote.address) $(host.address)'||lf||'FalseReturn'||lf
  1597. emsiBUF=emsiBUF||'Set remote.point 0'||lf||'SetA Remote $(remote.domain)#$(remote.zone):$(remote.net)/$(remote.node).$(remote.point)'||lf
  1598. emsiBUF=emsiBUF||'Return'||lf
  1599. Return
  1600.  
  1601. genwazoo:
  1602. call writech('STDOUT',"Installing Handshakes: FTS1 WAZOO ")
  1603. wzBUF='j_wazoo:'||lf||'System "Wazoo $(remote.wzcap) $(line).RYH"'||lf
  1604. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address) $(p.rsysop) $(remote.sysop) $(remote.sitename) $(p.login) 'nameprod' v$(remote.product_maj).$(remote.product_min) $<time> $(p.rfreqs) $(remote.freq)"'||lf
  1605. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) System:[$(remote.sitename)][$(remote.address)] Sysop:$(remote.sysop) Mailer:'nameprod' v$(remote.product_maj).$(remote.product_min)"'||lf
  1606. wzBUF=wzBUF||'Set RC $(IsOutbound)'||lf||'FalseJump notin'||lf
  1607. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.hoffer) $(host.wzprot) $(host.wzext)" '||lf
  1608. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Our Offer: $(host.wzprot) $(host.wzext) $(host.wzdomain)"'||lf
  1609. wzBUF=wzBUF||'notin:'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.roffer)${$(line).RYH} $(p.domain) $(remote.wzdomain)"'||lf
  1610. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Remote Offer:${$(line).RYH} $(remote.wzdomain)"'||lf
  1611. wzBUF=wzBUF||'checkwzcap:'||lf||'Cmp $(host.wzcap) 1'||lf||'FalseJump wazoo.1.0'||lf||'Set protocol DietIFNA'||lf||'Jump wazoo.4'||lf
  1612. wzBUF=wzBUF||'wazoo.1.0:'||lf||'Cmp $(host.wzcap) 4'||lf||'FalseJump wazoo.1.1'||lf||'Set protocol ZedZip'||lf||'Jump wazoo.4'||lf
  1613. wzBUF=wzBUF||'wazoo.1.1:'||lf||'Cmp $(host.wzcap) 8'||lf||'FalseJump wazoo.1.2'||lf||'Set protocol ZedZap'||lf||'Jump wazoo.4'||lf
  1614. wzBUF=wzBUF||'wazoo.1.2:'||lf||'Set protocol NOCOMMON'||lf||'Jump badwazoo'||lf
  1615. wzBUF=wzBUF||'wazoo.4:'||lf||'Set RC $(IsOutbound)'||lf||'TrueJump sentwazoo'||lf||'SubJump 'l_mailer'!sethostadr'||lf||'SubJump 'l_mailer'!setremote'||lf
  1616. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address) $(p.hoffer) $(host.wzprot) $(host.wzext)" '||lf
  1617. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Our Offer: $(host.wzprot) $(host.wzext) $(host.wzdomain)"'||lf
  1618. wzBUF=wzBUF||'Set RC $(number.$(remote.address))'||lf||'FalseJump wazoo.4.0'||lf
  1619. wzBUF=wzBUF||'Set pw CACHE listed 1 issecure TRUE remote.number $(number.$(remote.address))'||lf
  1620. wzBUF=wzBUF||'CmpI $(password.$(remote.address)) $(remote.password) '||lf||'TrueJump wazoo_password'||lf||'Jump badwazoo'||lf
  1621. wzBUF=wzBUF||'wazoo.4.0:'||lf||'Set pw DEFERRED inbound $(nonsecure)'||lf
  1622. if umbrella then wzBUF=wzBUF||'Set listed 0 inbound $(nonsecure) issecure FALSE'||lf
  1623. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.protocol) $(protocol) $(p.host) $(host.address) $(p.password) $(pw) $(p.inbound) NONSECURE"'||lf||'Set RC TRUE'||lf||'Return'||lf
  1624. if ~umbrella then do
  1625. wzBUF=wzBUF||'dolookup:'||lf||'Set pw LOOKUP systemcmd "$(lookup) $(remote.address) nodelist: $(line) "'||lf||'SubJump runsync'||lf||'Cmp $(RC) 0'||lf||'FalseJump wazoo_unlisted'||lf
  1626. wzBUF=wzBUF||'Set listed 1 remote.number ${$(line).number}'||lf||'Jump wazoo_nopassword'||lf
  1627. wzBUF=wzBUF||'wazoo_unlisted:'||lf||'Set listed 0 inbound $(nonsecure) issecure FALSE'||lf
  1628. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.address) not in NodeList - Lookup:$(RC) $(listed)"'||lf
  1629. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) NONSECURE"'||lf||'Set RC $(LO)'||lf||'TrueJump badwazoo'||lf
  1630. end
  1631. wzBUF=wzBUF||'wazoo_nopassword:'||lf||'Set pw "$(pw) NONE"'||lf||'Jump goodwazoo'||lf
  1632. wzBUF=wzBUF||'wazoo_password:'||lf||'Set pw "$(pw) OK"'||lf||'Jump goodwazoo'||lf
  1633. wzBUF=wzBUF||'sentwazoo:'||lf||'Set pw "$(pw) SENT"'||lf
  1634. wzBUF=wzBUF||'goodwazoo:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Password $(pw) Selected: $(protocol) Host:$(host.address)"'||lf
  1635. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.protocol) $(protocol) $(p.host) $(host.address) $(p.password) $(pw) $(p.number) $(remote.number)"'||lf||'Clear pw'||lf||'Set RC TRUE'||lf||'Return'||lf
  1636. wzBUF=wzBUF||'badwazoo:'||lf||'Set pw "$(pw) BAD" inbound $(nonsecure) issecure FALSE'||lf
  1637. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) BADWAZOO Cap:$(host.wzcap) Selected:$(protocol) Password:$(pw) His:[$(remote.password)] Ours:[$(password.$(remote.address))][${$(line).password}]"'||lf
  1638. wzBUF=wzBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.password) $(pw) $(p.protocol) $(protocol) $(p.number) $(remote.number) $(p.inbound) NONSECURE"'||lf
  1639. wzBUF=wzBUF||'Clear pw'||lf||'Set RC FALSE'||lf||'Return'||lf
  1640. return
  1641.  
  1642. genxpr:
  1643. say;call writech('STDOUT',"Installing Protocols: ")
  1644. if (power | sendbull | sendbanner) then do
  1645.     call writech('STDOUT',"Ascii ")
  1646.     xprBUF=xprBUF||'j_ascii_start:'||lf||'Set protocol ASCII fsend TRUE'||lf||'XprSetup "xprascii.library" "E1,RA,FA"'||lf
  1647. if SHOWXPRASC then xprBUF=xprBUF||'Set RC $(showxpr)'||lf||'FalseReturn'||lf||'SetUpDate "RAW:0/$($(line).w_offset)/640/130/Line $(line) $(protocol) $(session)/AUTO/INACTIVE/NOCLOSE/NOSIZE/SCREEN$(pscreen)"'||lf
  1648. else xprBUF=xprBUF||'SetUpdate NULL'||lf
  1649.     xprBUF=xprBUF||'Return'||lf
  1650.     xprBUF=xprBUF||'j_ascii_end:'||lf||'XprClose'||lf||'SetUpdate NULL'||lf||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  1651. if ROOFLOG then xprBUF=xprBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(filesout)"'||lf
  1652.     xprBUF=xprBUF||'Clear protocol'||lf||'Return'||lf
  1653. end
  1654.  
  1655. if power then do
  1656. call writech('STDOUT',"Zmodem ")
  1657. xprBUF=xprBUF||'zmodemsend:'||lf||'Set protocol ZMODEM session DOWNLOAD fsend TRUE'||lf
  1658. xprBUF=xprBUF||'XprSetup "xprzedzap.library" "TN,OR,B8,F0,E30,AN,DN,KN,SY,RN,M1024"'||lf||'SubJump xprdisplay'||lf
  1659. xprBUF=xprBUF||'XprSetFile $($(namebuf).full) $($(namebuf).file) ""'||lf||'XprSend $($(namebuf).file)'||lf||'XprClose'||lf||'SetUpdate NULL'||lf||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  1660. if ROOFLOG then xprBUF=xprBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(filesout)"'||lf
  1661. xprBUF=xprBUF||'Clear protocol session'||lf||'Return'||lf
  1662. xprBUF=xprBUF||'zmodemrecv:'||lf||'Set RC $(user)'||lf||'TrueJump zmrcv.1'||lf||'Set username USER remote.address "USER#0:0/0.0"'||lf||'SetA remote $(remote.address)'||lf||'Set remote.network FIDO'||lf
  1663. xprBUF=xprBUF||'zmrcv.1:'||lf
  1664. if ROOFLOG then xprBUF=xprBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(filesin)"'||lf
  1665. xprBUF=xprBUF||'Set protocol ZMODEM session "UPLOAD" inbound $(userdir) remote.sysop $(username) remote.sitename UNKNOWN '||lf||'BeginSession $(remote.address)'||lf
  1666. xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) from $(username) at $(remote.address)"'||lf
  1667. xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) $(session) $(p.protocol) $(protocol) $(p.inbound) USER $(p.rsysop) $(remote.sysop)"'||lf||'Jump zedzapin'||lf
  1668. end
  1669.  
  1670.  
  1671. if addemsi | power then do
  1672. call writech('STDOUT',"DirectZap ")
  1673. xprBUF=xprBUF||'directzapout:'||lf
  1674. xprBUF=xprBUF||'SetMailerFlags "DN,PN"'||lf||'Set protocol DirectZap'||lf||'SubJump 'notifylabel'get_resume'||lf
  1675. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B16,F0,E30,AN,DN,KN,SN,RN,NY,M8192,QY,C$(baud)'||lf
  1676. xprBUF=xprBUF||'SubJump xprdisplay'||lf
  1677. xprBUF=xprBUF||'Jump xprout'||lf
  1678.  
  1679. xprBUF=xprBUF||'directzapin:'||lf
  1680. xprBUF=xprBUF||'SetMailerFlags "DN,PN"'||lf||'Set protocol DirectZap'||lf||'SubJump 'notifylabel'get_resume'||lf
  1681. /*xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B8,F0,E30,AN,DN,KN,SN,RN,NN,M1024,QY'||lf    */
  1682. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B16,F0,E30,AN,DN,KN,SN,RN,NY,M8192,QY,C$(baud)'||lf
  1683. xprBUF=xprBUF||'SubJump xprdisplay'||lf
  1684. xprBUF=xprBUF||'Jump xprin'||lf
  1685. end
  1686.  
  1687. call writech('STDOUT',"ZedZip ")
  1688. xprBUF=xprBUF||'zedzipin:'||lf||'SetMailerFlags "DE,PN"'||lf||'Set protocol ZedZip'||lf||'SubJump 'notifylabel'get_resume'||lf
  1689. /*xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B8,F0,E30,AN,DN,KN,SN,RN,NN,M1024'||lf||'SubJump xprdisplay'||lf||'Jump xprin'||lf   */
  1690. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B16,F0,E30,AN,DN,KN,SN,RN,NN,M1024'||lf||'SubJump xprdisplay'||lf||'Jump xprin'||lf
  1691.  
  1692. xprBUF=xprBUF||'zedzipout:'||lf||'SetMailerFlags "DN,PN"'||lf||'Set protocol ZedZip'||lf||'SubJump 'notifylabel'get_resume'||lf
  1693. /*xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B8,F0,E30,AN,DN,KN,SN,RN,NN,M1024'||lf||'SubJump xprdisplay '||lf||'Jump xprout'||lf */
  1694. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B16,F0,E30,AN,DN,KN,SN,RN,NN,M1024'||lf||'SubJump xprdisplay '||lf||'Jump xprout'||lf
  1695.  
  1696. call writech('STDOUT',"ZedZap ")
  1697. xprBUF=xprBUF||'zedzapin:'||lf||'SetMailerFlags "DN,PN"'||lf||'Set protocol ZedZap'||lf||'SubJump 'notifylabel'get_resume'||lf
  1698. /*xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B8,F0,E30,AN,DN,KN,SN,RN,NY,M8192,C$(baud)'||lf||'SubJump xprdisplay'||lf    */
  1699. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B16,F0,E30,AN,DN,KN,SN,RN,NY,M8192,C$(baud)'||lf||'SubJump xprdisplay'||lf
  1700. xprBUF=xprBUF||'zmodemin:'||lf||'Jump xprin'||lf
  1701.  
  1702. xprBUF=xprBUF||'zedzapout:'||lf||'SetMailerFlags "DN,PN"'||lf||'Set protocol ZedZap'||lf||'SubJump 'notifylabel'get_resume'||lf
  1703. /*xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B8,F0,E30,AN,DN,KN,SN,RN,NY,M8192,C$(baud)'||lf||'SubJump xprdisplay'||lf    */
  1704. xprBUF=xprBUF||'XprSetup xprzedzap.library TN,OR,B168,F0,E30,AN,DN,KN,SN,RN,NY,M8192,C$(baud)'||lf||'SubJump xprdisplay'||lf
  1705. xprBUF=xprBUF||'zmodemout:'||lf||'Jump xprout'||lf
  1706.  
  1707.  
  1708. if addemsi then do
  1709. call writech('STDOUT',"TeLink ")   
  1710. xprBUF=xprBUF||'telinkout:'||lf||'XprSetup xprfts.library "OT,SN,MN"'||lf||'Set protocol Telink'||lf   
  1711. xprBUF=xprBUF||'Jump e_xmodemout'||lf   
  1712.  
  1713. xprBUF=xprBUF||'telinkin:'||lf||'XprSetup xprfts.library "OT,SN,MN"'||lf||'Set protocol Telink'||lf
  1714. xprBUF=xprBUF||'Jump xmodemin'||lf   
  1715.  
  1716. call writech('STDOUT',"SeaLink ")   
  1717. xprBUF=xprBUF||'sealinkout:'||lf||'XprSetup xprfts.library "OS,SF,WY,MN"'||lf||'Set protocol Sealink'||lf
  1718. xprBUF=xprBUF||'Jump e_xmodemout'||lf   
  1719.  
  1720. xprBUF=xprBUF||'sealinkin:'||lf||'XprSetup xprfts.library "OS,SF,WY,MN"'||lf||'Set protocol Sealink'||lf
  1721. xprBUF=xprBUF||'Jump xmodemout'||lf   
  1722. end
  1723.  
  1724. call writech('STDOUT',"Lotek ")
  1725. xprBUF=xprBUF||'lotekout:'||lf||'FindFreq $(called)'||lf||'SetMailerFlags "DY,PY"'||lf||'Set protocol Lotek'||lf||'Jump xmodemout'||lf
  1726. xprBUF=xprBUF||'lotekin:'||lf||'SetMailerFlags "DY,PY"'||lf||'XprSetup xprfts.library "7Y,CY,OB,IB,SY,BN,AN,NY,WY,FY"'||lf||'Set protocol Lotek'||lf||'Jump xmodemin'||lf
  1727. call writech('STDOUT',"DietIFNA ")
  1728. xprBUF=xprBUF||'dietifnaout:'||lf||'SetMailerFlags "DY,PN"'||lf||'Set protocol DietIFNA'||lf
  1729. call writech('STDOUT',"Xmodem ")
  1730. xprBUF=xprBUF||'xmodemout:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) ftsflags: 'ftsprod'"'||lf
  1731. xprBUF=xprBUF||'XprSetup xprfts.library "'ftsprod'"'||lf
  1732. if addemsi then xprBUF=xprBUF||'e_xmodemout:'||lf
  1733. xprBUF=xprBUF||'SubJump xprdisplay'||lf
  1734. xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Setup:$(XprSetup) RC:$(RC)"'||lf||'Jump xpr_send'||lf
  1735.  
  1736. xprBUF=xprBUF||'dietifnain:'||lf||'SetMailerFlags "DY,PN"'||lf||'Set protocol DietIFNA'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) ftsflags: 'ftsprod'"'||lf
  1737. xprBUF=xprBUF||'XprSetup xprfts.library "'ftsprod'"'||lf
  1738. xprBUF=xprBUF||'xmodemin:'||lf||'SubJump xprdisplay'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Setup:$(XprSetup) RC:$(RC)"'||lf||'Jump xpr_recv'||lf
  1739.  
  1740. xprBUF=xprBUF||'j_xprdisplay:'||lf||'SetPri $(xferpri)'||lf||'Set RC $(showxpr)'||lf||'FalseReturn'||lf
  1741. xprBUF=xprBUF||'SetUpDate "RAW:0/$($(line).w_offset)/640/130/Line $(line) $(protocol) $(session) $(remote.domain) $(remote.zone) $(remote.net) $(remote.node) $(remote.point) $(remote.sysop) $(remote.sitename)/AUTO/INACTIVE/NOCLOSE/NOSIZE/SCREEN$(pscreen)"'||lf
  1742. xprBUF=xprBUF||'SetStatus NULL:'||lf||'Return'||lf
  1743.  
  1744. xprBUF=xprBUF||'xprout:'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.protocol) $(protocol)"'||lf
  1745. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Setup:$(XprSetup) RC:$(RC)"'||lf
  1746. xprBUF=xprBUF||'XprSend ""'||lf
  1747. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Send:$(RC)"'||lf
  1748. xprBUF=xprBUF||'FalseJump xprend'||lf
  1749. xprBUF=xprBUF||'Set RC $(nopickup)'||lf||'TrueJump xprend'||lf
  1750. xprBUF=xprBUF||'Delay 2'||lf
  1751. xprBUF=xprBUF||'xpr_recv:'||lf||'XprReceive ""'||lf
  1752. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Receive:$(RC)"'||lf
  1753. xprBUF=xprBUF||'Jump xprend'||lf
  1754.  
  1755. xprBUF=xprBUF||'xprin:'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.protocol) $(protocol)"'||lf
  1756. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Setup:$(XprSetup) RC:$(RC)"'||lf
  1757. xprBUF=xprBUF||'Set RC $(resume)'||lf||'FalseJump xprin_recv'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Resuming"'||lf
  1758. xprBUF=xprBUF||'xprin_recv:'||lf||'XprReceive ""'||lf
  1759. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Receive:$(RC)"'||lf
  1760. xprBUF=xprBUF||'FalseJump xprend'||lf
  1761. if power then xprBUF=xprBUF||'Cmp $(session) UPLOAD'||lf||'TrueJump xprend'||lf
  1762. xprBUF=xprBUF||'Delay 2'||lf
  1763. xprBUF=xprBUF||'xpr_send:'||lf||'XprSend ""'||lf
  1764. if wpldebug then xprBUF=xprBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(protocol) Send:$(RC)"'||lf
  1765. xprBUF=xprBUF||'j_xprend:'||lf||'XprClose'||lf||'SetUpdate NULL'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.address) $(protocol) RC:$(RC)"'||lf||'ReplyCall 0'||lf||'EndSession all'||lf
  1766. if power then xprBUF=xprBUF||'Cmp $(session) UPLOAD'||lf||'TrueJump xprdesc'||lf
  1767. if ROOFLOG then xprBUF=xprBUF||'set tmp $(ftnin)'||lf||'Set RC $(IsOutbound)'||lf||'FalseJump setss'||lf||'Set tmp $(ftnout)'||lf||'setss:'||lf||'RexxMsg FY ROOFLOG "UPDATE_STAT $(tmp)"'||lf
  1768. xprBUF=xprBUF||'Jump aftersession'||lf
  1769. if power then do
  1770. xprBUF=xprBUF||'xprdesc:'||lf
  1771. if sc_user then xprBUF=xprBUF||'SetStatus "$(openstatus)"'||lf||'Print "Getting upload desciptions\n"'||lf
  1772. if addfreq then do
  1773. xprBUF=xprBUF||'RexxMsg "SY,RY" REXX "return upper(translate(\"$(username)\",\"_\",\" \"))" '||lf
  1774. xprBUF=xprBUF||'Pattern $(remfile) #?$(result2).GRAB'||lf||'FalseJump xprdesc.1'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Received GRAB request from $(username)"'||lf||'Set namebuf GRAB'||lf||'Jump loadwplrx'||lf
  1775. end
  1776. xprBUF=xprBUF||'xprdesc.1:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Getting upload descriptions from $(username)"'||lf
  1777. xprBUF=xprBUF||';RexxMsg "" REXX "$(rexxdir)UserUL.wplrx $(username)"'||lf
  1778. xprBUF=xprBUF||'Address REXX "$(rexxdir)UserUL.wplrx $(username)"'||lf||'Jump do_menu'||lf
  1779. end
  1780. return
  1781.  
  1782. genclock:
  1783. call writech('STDOUT',"CLOCK ")
  1784. clkBUF=';WPLSCRIPT 'l_mailer'clock'||lf||'clockcall:'||lf
  1785. if sc_connect then clkBUF=clkBUF||'SetStatus $(openstatus)'||lf
  1786. clkBUF=clkBUF||'Print "Switching to $(baud.$(remote.address))bps\n"'||lf
  1787. clkBUF=clkBUF||'Print "$(sitename.$(remote.address)) $(number.$(remote.address))\n"'||lf
  1788. clkBUF=clkBUF||'Print "$(baud.$(remote.address) $(xprsetup.$(remote.address))\n"'||lf
  1789. clkBUF=clkBUF||'SetBaud $(baud.$(remote.address))'||lf||'ModemInit'||lf||'Set state "DIALING $(remote.address)" protocol "XprClock"'||lf
  1790. clkBUF=clkBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(p.baud) $(baud) $(p.number) $(number.$(remote.address)) $(p.remote) $(sitename.$(remote.address)) $(p.session) $(xprsetup.$(remote.address))"'||lf
  1791. if ROOFLOG then clkBUF=clkBUF||' RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Calling $(sitename.$(remote.address)) @ $(number.$(remote.address))"'||lf
  1792. clkBUF=clkBUF||'SmartSend "|~~ATDT$(number.$(remote.address))|"'||lf||'GetResponse 60'||lf
  1793. clkBUF=clkBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.response) $(event)"'||lf
  1794. clkBUF=clkBUF||'Cmp $(event) CONNECT'||lf||'TrueJump clockconnect'||lf||'Cmp $(event) BUSY'||lf||'Set dialrc 5'||lf||'TrueJump clockexit'||lf||'Set dialrc 11'||lf||'Jump clockexit'||lf
  1795. clkBUF=clkBUF||'clockconnect:'||lf||'SetPri $(xferpri)'||lf||'Set state "OUTBOUND $(sitename.$(remote.address))"'||lf
  1796. clkBUF=clkBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(p.protocol) $(protocol)"'||lf
  1797. clkBUF=clkBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) dataconnect:$(remote.address) $(lastresponse)[$(baud)]"'||lf
  1798. clkBUF=clkBUF||'XprSetup xprclock.library "$(xprsetup.$(remote.address))"'||lf
  1799. if showxpr then clkBUF=clkBUF||'SetUpDate "RAW:0/$($(line).w_offset)/640/130/Line $(line) $(protocol) $(session)/AUTO/INACTIVE/NOCLOSE/NOSIZE/SCREEN$(pscreen)"'||lf
  1800. clkBUF=clkBUF||'XprSend ""'||lf||'Set clockrc $(RC)'||lf||'XprClose'||lf||'Cmp $(clockrc) 1'||lf||'TrueJump clockset'||lf
  1801. clkBUF=clkBUF||'Set dialrc 15'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) ERROR Clock NOT Set"'||lf
  1802. if ROOFLOG then clkBUF=clkBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): $(protocol) ERROR Clock NOT Set"'||lf
  1803. clkBUF=clkBUF||'clockexit:'||lf||'SetUpdate NULL'||lf||'SmartSend "|~~AT|"'||lf||'Print "Switching back to $(LockedRate)bps\n"'||lf
  1804. clkBUF=clkBUF||'SetBaud $(LockedRate)'||lf||'SmartSend "|~~AT|"'||lf||'ReplyCall $(dialrc)'||lf||'SetStatus NULL:'||lf
  1805. clkBUF=clkBUF||'Clear tbaud dialrc clockrc'||lf||'Return '||lf
  1806. clkBUF=clkBUF||'clockset:'||lf||'Set dialrc 0'||lf||'SubJump clockexit'||lf||'System "SetClock save"'||lf
  1807. clkBUF=clkBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Clock Set"'||lf
  1808. if ROOFLOG then clkBUF=clkBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Clock Set"'||lf
  1809. clkBUF=clkBUF||'Return'||lf
  1810. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': clockBUF:'length(clkBUF)
  1811.  
  1812.     call open('clk',clockwpl,"W")
  1813.     call writech('clk',clkBUF)
  1814.     call close('clk')
  1815.     drop clk clkBUF
  1816.     Say;Say "Wrote "clockwpl
  1817. return
  1818.  
  1819.  
  1820. gendialer:
  1821. if umbrella | ~domodules then say
  1822. call writech('STDOUT',"Installing Dialers: FTN ")
  1823. dialBUF=dialBUF||'setmanual:'||lf||'Set RC $(MANUAL)'||lf||'FalseReturn'||lf||'Set remote.number $(number)'||lf
  1824. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Manual poll: $(remote.address) $(remote.number)"'||lf
  1825. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address) $(p.number) $(remote.number)"'||lf||'Clear manual number'||lf||'Set RC TRUE'||lf||'Return'||lf
  1826. dialBUF=dialBUF||'line_check:'||lf||'Set RC $(line.$(remote.address))'||lf||'FalseJump dial_site'||lf||'Cmp $(line.$(remote.address)) $(line)'||lf||'TrueJump dial_site'||lf
  1827. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.address) UseLine:$(line.$(remote.address))"'||lf
  1828. dialBUF=dialBUF||'CallForward 'u_mailer'$(line.$(remote.address))'||lf||'ReplyCall 7'||lf||'Jump freeline'||lf
  1829.  
  1830. dialBUF=dialBUF||'ckpresess:'||lf||'Cmp "$(presess.$(remote.address))" ""'||lf||'TrueReturn'||lf
  1831. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine roofwplstat$(line) $(p.status) PreSession: $(presess.$(remote.address))"'||lf
  1832. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog roofwpl $<time> $(line) PreSession: $(presess.$(remote.address)) loading for $(remote.address)"'||lf
  1833. dialBUF=dialBUF||'Address REXX "$(rexxdir)$(presess.$(remote.address))"'||lf
  1834. dialBUF=dialBUF||'Set dialrc $(result1)'||lf
  1835. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog roofwpl $<time> $(line) PreSession RC:$(RC) $(dialrc)"'||lf
  1836. dialBUF=dialBUF||'Return'||lf
  1837.  
  1838. dialBUF=dialBUF||'dialftn:'||lf||'Set state "DIALING FTN $(remote.address)"'||lf
  1839. if addspeech then dialBUF=dialBUF||'Set sl 70 speech $(state)'||lf||'SubJump sayit'||lf
  1840. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf||'ModemClear'||lf
  1841. if loosespec & strictzmh & addemsi then do
  1842. dialBUF=dialBUF||'RexxMsg SY "return((time(m)<(left(word(\"$(umh)\",1),2)*60+right(word(\"$(umh)\",1),2)))|(time(m)>(left(word(\"$(umh)\",2),2)*60+right(word(\"$(umh)\",2),2))))"'||lf
  1843. dialBUF=dialBUF||'Set RC $(result1)'||lf
  1844. dialBUF=dialBUF||'FalseJump notzmhdial'||lf
  1845. dialBUF=dialBUF||'Set host.link "8N1,HXT"'||lf
  1846. dialBUF=dialBUF||'notzmhdial:'||lf
  1847. end
  1848. dialBUF=dialBUF||'SubJump 'l_mailer'!sethostadr'||lf||'SubJump setmanual'||lf||'TrueJump dial_site'||lf
  1849. dialBUF=dialBUF||'dodial.0:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state)"'||lf
  1850. dialBUF=dialBUF||'Set RC $(number.$(remote.address))'||lf
  1851. if umbrella then dialBUF=dialBUF||'FalseJump nonumber'||lf||'SubJump getcached'||lf||'Jump line_check'||lf
  1852. else do
  1853. dialBUF=dialBUF||'FalseJump ftn_lookup'||lf||'SubJump getcached'||lf||'Jump line_check'||lf
  1854. dialBUF=dialBUF||'ftn_lookup:'||lf||'Set systemcmd "$(lookup) $(remote.address) nodelist: $(line) "'||lf
  1855. dialBUF=dialBUF||'SubJump runsync'||lf||'TrueJump nonumber'||lf||'SubJump getlookup'||lf||'Jump dial_site'||lf
  1856. end
  1857. if addhost then dialBUF=dialBUF||'dialforward:'||lf||'CallForward 'u_mailer'1'||lf||'Jump aftersession'||lf
  1858.  
  1859. if addclock then do
  1860. call writech('STDOUT',"CLOCK ")
  1861. dialBUF=dialBUF||'dialclock:'||lf
  1862. if addspeech then dialBUF=dialBUF||'Set sl 70 speech "Calling Atomic Clock $(remote.sitename)"'||lf||'SubJump sayit'||lf
  1863. dialBUF=dialBUF||'ModemClear'||lf||'LoadScript clock CFG:WPL/'l_mailer'CLOCK.WPL'||lf||'SubJump clock!clockcall'||lf||'LoadScript clock ""'||lf||'Jump dodial_exit'||lf
  1864. end
  1865.  
  1866. if addbbs then do
  1867. call writech('STDOUT',"BBS ")
  1868. dialBUF=dialBUF||'dialbbs:'||lf||'Set state "DIALING BBS $(remote.address)" term TRUE'||lf
  1869. if addspeech then dialBUF=dialBUF||'Set sl 70 speech $(state)'||lf||'SubJump sayit'||lf
  1870. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf||'ModemCLear'||lf||'SubJump setmanual'||lf||'TrueJump dial_site'||lf
  1871. dialBUF=dialBUF||'dialbbs.0:'||lf||'Set RC $(number.$(remote.address))'||lf||'FalseJump nonumber'||lf||'SubJump getuucached'||lf||'Jump line_check'||lf
  1872. dialBUF=dialBUF||'bbsconnect:'||lf
  1873. if ROOFLOG then dialBUF=dialBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(bbsout)"'||lf
  1874. dialBUF=dialBUF||'SubJump ckpresess'||lf||'Cmp dialrc 5'||lf||'TrueJump dodial_exit'||lf
  1875. dialBUF=dialBUF||'Set systemcmd "$(term.$(remote.address))"'||lf||'SubJump runasync'||lf||'ReplyCall 0'||lf||'Jump aftersession'||lf
  1876. end
  1877.  
  1878. if addfax then do
  1879. call writech('STDOUT',"FAX ")
  1880. dialBUF=dialBUF||'dialfax:'||lf
  1881. dialBUF=dialBUF||'Set state "DIALING FAX $(remote.address)" fax TRUE'||lf
  1882. if addspeech then dialBUF=dialBUF||'Set sl 70 speech $(state)'||lf||'SubJump sayit'||lf
  1883. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf
  1884. dialBUF=dialBUF||'ModemClear'||lf||'SubJump setmanual'||lf
  1885. dialBUF=dialBUF||'TrueJump faxconnect'||lf
  1886. dialBUF=dialBUF||'dialfax.0:'||lf
  1887. dialBUF=dialBUF||'Set RC $(number.$(remote.address))'||lf
  1888. dialBUF=dialBUF||'FalseJump nonumber'||lf
  1889. dialBUF=dialBUF||'SubJump getuucached'||lf
  1890. dialBUF=dialBUF||';Jump line_check'||lf
  1891. dialBUF=dialBUF||'Jump faxconnect'||lf
  1892. end
  1893.  
  1894. if adduucp then do
  1895. call writech('STDOUT',"UUCP ")
  1896. dialBUF=dialBUF||'dialuucp:'||lf||'Set state "DIALING UUCP $(remote.address)"'||lf
  1897. if addspeech then dialBUF=dialBUF||'Set sl 70 speech $(state)'||lf||'SubJump sayit'||lf
  1898. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf||'SubJump 'l_mailer'!sethostadr'||lf||'ModemClear'||lf||'SubJump setmanual'||lf||'TrueJump dial_site'||lf
  1899. dialBUF=dialBUF||'dialuucp.0:'||lf||'Set RC $(number.$(remote.address))'||lf||'FalseJump uucp_lookup'||lf||'SubJump getuucached'||lf||'Jump line_check'||lf
  1900. dialBUF=dialBUF||'uucp_lookup:'||lf||'SubJump getuulookup'||lf||'CmpI $(remote.number) ""'||lf||'TrueJump nonumber'||lf||'Jump dial_site'||lf
  1901. end
  1902.  
  1903. dialBUF=dialBUF||'dodial:'||lf||'SubJump cleargui'||lf
  1904. if addclock then dialBUF=dialBUF||'Pattern $(remote.address) CLOCK#?'||lf||'TrueJump dialclock'||lf
  1905. if addbbs then dialBUF=dialBUF||'Pattern $(remote.address) BBS#?'||lf||'TrueJump dialbbs'||lf
  1906. if addfax then dialBUF=dialBUF||'Pattern $(remote.address) FAX#?'||lf||'TrueJump dialfax'||lf
  1907. if addhost then dialBUF=dialBUF||'Cmp $(remote.network) TEXT'||lf||'TrueJump dialforward'||lf
  1908. if adduucp then dialBUF=dialBUF||'Cmp $(remote.network) UUCP'||lf||'TrueJump dialuucp'||lf
  1909. dialBUF=dialBUF||'Jump dialftn'||lf
  1910. dialBUF=dialBUF||'dial_site:'||lf
  1911. dialBUF=dialBUF||'Set RC "$(predial.$(remote.address))"'||lf||'FalseJump nopredial'||lf
  1912. dialBUF=dialBUF||'Set systemcmd "$(predial.$(remote.address))"'||lf||'SubJump runsync'||lf
  1913. dialBUF=dialBUF||'nopredial:'||lf
  1914. dialBUF=dialBUF||'Set dial $(DialString) RC $(dial.$(remote.address))'||lf||'FalseJump dial_mdm'||lf||'Set dial $(dial.$(remote.address))'||lf
  1915. dialBUF=dialBUF||'dial_mdm:'||lf
  1916. if sc_dial then dialBUF=dialBUF||'SetStatus $(openstatus)'||lf||'Print "Dialing $(remote.sitename)\n"'||lf
  1917. dialBUF=dialBUF||'SmartSend "$(dial)$(remote.number)|"'||lf||'GetResponse $(responsetimeout)'||lf
  1918. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.response) $(event):$(lastresponse)"'||lf
  1919. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.address) $(lastresponse) $(event)"'||lf
  1920. dialBUF=dialBUF||'Cmp $(event) CONNECT'||lf||'TrueJump dataconnect'||lf
  1921. if addfax then dialBUF=dialBUF||'Cmp $(event) FAX'||lf||'TrueJump faxconnect'||lf
  1922. dialBUF=dialBUF||'Cmp $(event) VOICE'||lf||'TrueJump voiceconnect'||lf
  1923. dialBUF=dialBUF||'Cmp $(event) BUSY'||lf||'TrueJump dodial_alternate'||lf
  1924. if ~noanswer then do
  1925. dialBUF=dialBUF||'Cmp $(event) RING'||lf||'FalseJump dt.0'||lf
  1926. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Got Ring during dial"'||lf
  1927. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Inbound call Dial interrupt"'||lf
  1928. dialBUF=dialBUF||'ReplyCall 5'||lf||'set txt "'nl'  Welcoming you despite the fact you interrupted my dialing out'nl'"'||lf||'SubJump 'l_mailer'!fidonethost'||lf||'Jump answer'||lf
  1929. end
  1930. dialBUF=dialBUF||'dt.0:'||lf||'Cmp $(event) NOMODEM'||lf||'FalseJump dt.1'||lf||'ReplyCall 10'||lf||'Jump slaveloop'||lf
  1931. dialBUF=dialBUF||'dt.1:'||lf||'Cmp $(event) OWNDEVUNIT'||lf||'FalseJump dt.2'||lf||'ReplyCall 1'||lf||'Jump freeline'||lf
  1932. dialBUF=dialBUF||'dt.2:'||lf||'Cmp $(event) CARRIER'||lf||'FalseJump dt.3'||lf||'ReplyCall 11'||lf||'Jump lost_carrier'||lf
  1933. dialBUF=dialBUF||'dt.3:'||lf||'Cmp $(event) TIMEOUT'||lf||'FalseJump dt.4'||lf||'Set dialrc 12'||lf||'Jump dodial_exit'||lf||'Set dialrc $(RC)'||lf
  1934. dialBUF=dialBUF||'dt.4:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Dialrc:$(dialrc) RC:$(RC) Event:[$(event)] Modem:[$(lastresponse)]"'||lf||'Jump dodial_exit'||lf
  1935. dialBUF=dialBUF||'nonumber:'||lf||'Set dialrc 6'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) No phone number for $(remote.address)"'||lf||'Jump dodial_exit'||lf
  1936. dialBUF=dialBUF||'dodial_alternate:'||lf||'Cmp $(alternate) TRUE'||lf||'TrueJump return_busy'||lf||'Set RC $(altnum.$(remote.address))'||lf||'FalseJump return_busy'||lf
  1937. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(remote.number) Busy, Dialing $(altnum.$(remote.address))"'||lf
  1938. dialBUF=dialBUF||'Set remote.number $(altnum.$(remote.address)) alternate TRUE'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.number) $(remote.number)"'||lf||'Jump dial_site'||lf
  1939. dialBUF=dialBUF||'return_busy:'||lf||'Clear alternate'||lf||'Set dialrc 5'||lf
  1940. dialBUF=dialBUF||'dodial_exit:'||lf||'ReplyCall $(dialrc)'||lf||'Jump freeline'||lf
  1941.  
  1942. dialBUF=dialBUF||'dataconnect:'||lf
  1943. dialBUF=dialBUF||'SubJump ckpresess'||lf||'Cmp dialrc 5'||lf||'TrueJump dodial_exit'||lf
  1944. dialBUF=dialBUF||'Set session OUTBOUND state "SESSION $(session) $(remote.address) $(lastresponse)"'||lf
  1945. if sc_connect then dialBUF=dialBUF||'SetStatus "$(openstatus)"'||lf||'Print "$(session)\n"'||lf
  1946. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.baud) $(baud) $(p.status) $(session):$(lastresponse)"'||lf
  1947. if ROOFLOG then dialBUF=dialBUF||'RexxMsg FY ROOFLOG "CALLSTATUS $(calltask.$(remote.address)) $(line) $(callcount.$(remote.address)) $(callstart.$(remote.address)) $<time> $(remote.address) CONNECTED"'||lf
  1948. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) dataconnect:$(remote.address) $(lastresponse)[$(baud)]"'||lf
  1949. if ROOFLOG then dialBUF=dialBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(callsout)"'||lf
  1950. if addbbs then dialBUF=dialBUF||'Set RC $(term)'||lf||'TrueJump bbsconnect'||lf
  1951. if adduucp then dialBUF=dialBUF||'Cmp $(remote.network) UUCP'||lf||'TrueJump uucpconnect'||lf
  1952. dialBUF=dialBUF||'Set called $(remote.address)'||lf
  1953. dialBUF=dialBUF||'Set RC $(useakasout.$(remote.address))'||lf||'FalseJump dataconnect.1'||lf
  1954. dialBUF=dialBUF||'Set RC "$(akalist.$(remote.number))"'||lf||'FalseJump dataconnect.1'||lf
  1955. dialBUF=dialBUF||'Set called "$(akalist.$(remote.number))"'||lf
  1956. dialBUF=dialBUF||'dataconnect.1:'||lf||'Set RC $(crash)'||lf||'FalseJump dc.1'||lf||'Set MinSendPri 50'||lf
  1957. dialBUF=dialBUF||'dc.1:'||lf||'BeginSession $(called)'||lf||'SetPri $(negopri)'||lf
  1958. dialBUF=dialBUF||'Set host.wzcap 13 host.wzext "-Freq +Domain" host.freq FALSE'||lf
  1959.  
  1960. if usexflo then do
  1961. if exists('RPDIR:XFLO') then dialBUF=dialBUF||'Set systemcmd "XFLO $(outbound) $(host.address) $(called)"'||lf
  1962. else dialBUF=dialBUF||'Set systemcmd "Rx $(rexxdir)XFLO.rexx $(outbound) $(host.address) $(called)"'||lf
  1963. dialBUF=dialBUF||'SubJump runsync'||lf
  1964. end
  1965.  
  1966. if addemsi then do
  1967. dialBUF=dialBUF||'Set RC $(emsi.$(line))'||lf||'FalseJump gethandshake'||lf
  1968. dialBUF=dialBUF||'Cmp $(outflags.$(remote.address)) ""'||lf||'TrueJump dc.2'||lf
  1969. dialBUF=dialBUF||'Pattern $(outflags.$(remote.address)) "#?GE#?"'||lf
  1970. dialBUF=dialBUF||'FalseJump gethandshake'||lf
  1971.  
  1972. dialBUF=dialBUF||'dc.2:'||lf
  1973. if primary then dialBUF=dialBUF||'Set host.addresses $(host.aka.$(host.domain))'||lf
  1974. else dialBUF=dialBUF||'Set host.addresses "'strip(myakas)'"'||lf
  1975. dialBUF=dialBUF||'Cmp $(present.$(remote.address)) ""'||lf||'TrueJump do_emsi'||lf
  1976. dialBUF=dialBUF||'Set host.addresses "$(present.$(remote.address))"'||lf
  1977. dialBUF=dialBUF||'Jump do_emsi'||lf
  1978.  
  1979. dialBUF=dialBUF||'bademsihandshake:'||lf
  1980. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) EMSI failed $(remote.addresses), trying FTS1/WAZOO"'||lf
  1981. end
  1982.  
  1983. dialBUF=dialBUF||'gethandshake:'||lf
  1984. dialBUF=dialBUF||'Set outflags $(outflags.$(line))'||lf
  1985. dialBUF=dialBUF||'Set RC $(outflags.$(remote.address))'||lf||'FalseJump gh.0'||lf
  1986. dialBUF=dialBUF||'Set outFlags $(outflags.$(remote.address))'||lf
  1987. dialBUF=dialBUF||'gh.0:'||lf||'GetOutbound $(outflags)'||lf
  1988. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(event):$(namebuf) $(called)"'||lf
  1989. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.login) $(event) $<time> $(p.hfreqs) $(host.freq) $(p.session) $(event) $(p.roffer) $(namebuf)"'||lf
  1990. if addemsi then do
  1991. /*dialBUF=dialBUF||'Cmp $(event) EMSI'||lf||'TrueJump do_emsi'||lf  */
  1992. dialBUF=dialBUF||'Pattern $(event) #?EMSI#?'||lf||'TrueJump do_emsi'||lf
  1993. end
  1994. dialBUF=dialBUF||'Cmp $(event) WAZOO'||lf||'TrueJump do_wazoo'||lf
  1995. dialBUF=dialBUF||'Cmp $(event) FTS1'||lf||'TrueJump do_fts1'||lf
  1996. dialBUF=dialBUF||'Jump bad_handshake'||lf
  1997. dialBUF=dialBUF||'do_fts1:'||lf||'Set protocol FTS1 FTS1 TRUE'||lf||'Jump lotekout'||lf
  1998. dialBUF=dialBUF||'do_wazoo:'||lf||'CmpI $(called) $(remote.address)'||lf||'TrueJump do_wazoo.1'||lf
  1999. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Called:$(called) Got:$(remote.address)"'||lf
  2000. dialBUF=dialBUF||'; Send files queued for address given in WaZoo'||lf
  2001. dialBUF=dialBUF||'; BeginSession $(remote.address)'||lf
  2002. dialBUF=dialBUF||'do_wazoo.1:'||lf||'Set IsOutbound TRUE'||lf||'SubJump wazoo'||lf
  2003. dialBUF=dialBUF||';Set IsOutbound FALSE'||lf
  2004. dialBUF=dialBUF||'Set RC $(remote.freq)'||lf||'TrueJump dofreqs'||lf
  2005. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Freqs disabled at $(called)"'||lf
  2006. dialBUF=dialBUF||';Set RC $(forcefreqs)'||lf
  2007. dialBUF=dialBUF||';FalseJump getwzcap'||lf
  2008. dialBUF=dialBUF||';RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Sending REQ anyways"'||lf
  2009. dialBUF=dialBUF||';Jump dofreqs'||lf
  2010. dialBUF=dialBUF||'Jump getwzcap'||lf
  2011. dialBUF=dialBUF||'dofreqs:'||lf||'FindFreq $(called)'||lf||'FindFreq $(remote.address)'||lf||'Set freq $(RC)'||lf
  2012. dialBUF=dialBUF||'getwzcap:'||lf||'Cmp $(host.wzcap) 8'||lf||'TrueJump zedzapout'||lf||'Cmp $(host.wzcap) 4'||lf||'TrueJump zedzipout'||lf||'Cmp $(host.wzcap) 1'||lf||'TrueJump dietifnaout'||lf
  2013. dialBUF=dialBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) FTS1 fallback"'||lf
  2014. dialBUF=dialBUF||'Set protocol FTS1 FTS1 TRUE'||lf||'Jump lotekout'||lf
  2015. dialBUF=dialBUF||'bad_handshake:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Handshake failed:$(event) $(remote.address)"'||lf
  2016. dialBUF=dialBUF||'ReplyCall 99'||lf||'EndSession all'||lf||'Jump freeline'||lf
  2017. return
  2018.  
  2019. genanswer:
  2020. say;call writech('STDOUT','Installing Answer: FTN ')
  2021. call SetVars('NOANSWER','FALSE')
  2022. ansBUF=ansBUF||'answer:'||lf||'SetPri $(negopri)'||lf||'System "Run >NIL: Delete ENV:$(line).#?"'||lf||'SubJump cleargui'||lf||'Set state "ANSWERING" session INBOUND'||lf
  2023. if sc_answer then ansBUF=ansBUF||'SetStatus "$(openstatus)"'||lf||'Print "$(state)\n"'||lf
  2024. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(lastresponse) $(p.response) $(event) $(p.baud) $(baud)"'||lf
  2025. if ROOFLOG then ansBUF=ansBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(callsin)"'||lf
  2026. ansBUF=ansBUF||'ModemClear'||lf
  2027. ansBUF=ansBUF||'answer0:'||lf
  2028. ansBUF=ansBUF||'Set RC ${'envpath'NOANSWER}'||lf||'FalseJump answer01'||lf
  2029. ansBUF=ansBUF||'Print "IGNORED\n"'||lf||'Jump waitring'||lf
  2030. ansBUF=ansBUF||'answer01:'||lf
  2031. ansBUF=ansBUF||'SmartSend $(AnswerString)'||lf||'GetResponse $(responsetimeout)'||lf
  2032. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(lastresponse) $(p.response) $(event) $(p.baud) $(baud)"'||lf
  2033. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state) $(lastresponse) $(event):$(baud)"'||lf
  2034. if addfax then do
  2035. call writech('STDOUT',"FAX ")
  2036. ansBUF=ansBUF||'Cmp $(event) FAX'||lf||'TrueJump faxanswer'||lf
  2037. end
  2038. ansBUF=ansBUF||'Cmp $(event) RING'||lf||'TrueJump answer0'||lf
  2039. ansBUF=ansBUF||'Cmp $(event) CONNECT'||lf||'TrueJump answer1'||lf
  2040. ansBUF=ansBUF||'Cmp $(event) NOMODEM'||lf||'TrueJump freeline'||lf
  2041. ansBUF=ansBUF||'Cmp $(event) OWNDEVUNIT'||lf||'TrueJump freeline'||lf
  2042. ansBUF=ansBUF||'Cmp $(event) TIMEOUT'||lf||'TrueJump freeline'||lf
  2043. ansBUF=ansBUF||'Cmp $(event) CARRIER'||lf||'TrueJump lost_carrier'||lf
  2044. ansBUF=ansBUF||'Jump waitring'||lf
  2045. ansBUF=ansBUF||'answer1:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(lastresponse) $(baud)"'||lf||'Delay 6'||lf||'ModemClear'||lf
  2046. ansBUF=ansBUF||'CheckCarrier'||lf||'FalseJump lost_carrier'||lf
  2047. if sc_connect then ansBUF=ansBUF||'SetStatus "$(openstatus)"'||lf
  2048. ansBUF=ansBUF||'Set txt "'nl||emsiserial' ${WPLVER}'||nl||'$(sysver)'nl'  You have a $(lastresponse) on line $(line) at $<time> on $<date>'nl''||lf||'SubJump showtxt'||lf
  2049. if sendbanner then ansBUF=ansBUF||'SubJump sendbanner'||lf||'CheckCarrier'||lf||'FalseJump lost_carrier'||lf
  2050. else ansBUF=ansBUF||'Set txt $(welcome)'||lf||'SubJump showtxt'||lf
  2051.  
  2052. if adduucp then ansBUF=ansBUF||'Set txt "Do NOT use your name to login:'nl'"'||lf||'SubJump showtxt'||lf
  2053. ansBUF=ansBUF||'SetPri $(negopri)'||lf||'Set state "SESSION $(session) unknown"'||lf
  2054. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) $(p.baud) $(baud)"'||lf
  2055.  
  2056. if addemsi then do
  2057. ansBUF=ansBUF||'Set host.link "8N1"'||lf
  2058. if strictzmh then do
  2059. ansBUF=ansBUF||'RexxMsg SY "return((time(m)<(left(word(\"$(umh)\",1),2)*60+right(word(\"$(umh)\",1),2)))|(time(m)>(left(word(\"$(umh)\",2),2)*60+right(word(\"$(umh)\",2),2))))"'||lf
  2060. ansBUF=ansBUF||'Set RC $(result1)'||lf
  2061. ansBUF=ansBUF||'FalseJump notzmhans'||lf
  2062. ansBUF=ansBUF||'Set host.link "$(host.link),HXT"'||lf
  2063. ansBUF=ansBUF||'notzmhans:'||lf
  2064. end
  2065. end
  2066.  
  2067. if ~umbrella & addfreq then ansBUF=ansBUF||'Cmp ${'envpath'ALLOWFREQS} TRUE'||lf||'TrueJump do_menu'||lf
  2068. ansBUF=ansBUF||'Set host.wzext "-Freq +Domain" host.freq FALSE'||lf
  2069. if addemsi then ansBUF=ansBUF||'Set host.link "$(host.link),HRQ"'||lf
  2070.  
  2071. ansBUF=ansBUF||'j_do_menu:'||lf||'Clear namebuf event'||lf
  2072. ansBUF=ansBUF||'CheckCarrier'||lf||'FalseJump lost_carrier'||lf
  2073. if addemsi then do
  2074. ansBUF=ansBUF||'Set RC $(emsireqsent)'||lf||'TrueJump do_menu.1'||lf
  2075. ansBUF=ansBUF||'sendemsireq:'||lf||'Set RC $(user)'||lf||'TrueJump do_menu.1'||lf
  2076. ansBUF=ansBUF||'Set RC $(emsi.$(line))'||lf||'FalseJump do_menu.1'||lf
  2077. ansBUF=ansBUF||'Set txt "**EMSI_REQA77E\r" emsireqsent TRUE'||lf
  2078. ansBUF=ansBUF||'do_menu.1:'||lf
  2079. end
  2080.  
  2081. if umbrella then ansBUF=ansBUF||'Set txt "$(txt) 'nl'Mailers only!'nl'"'||lf
  2082. else ansBUF=ansBUF||'Set txt "$(txt) $(sysprompt)"'||lf||'Cmp ${'envpath'ACCESS} TRUE'||lf||'TrueJump allwelcome'||lf||'Set txt "$(txt) 'nl'Mailers only at this time for login: "'||lf
  2083.  
  2084. ansBUF=ansBUF||'allwelcome:'||lf||'SubJump showtxt'||lf
  2085. ansBUF=ansBUF||'get_login:'||lf||'GetInbound "$(inflags.$(line))" $(loginwait)'||lf
  2086. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(session) $(p.session) $(event) $(p.login) $(namebuf) $<time> $(p.hfreqs) $(host.freq)"'||lf
  2087. if ~umbrella then do
  2088.     call writech('STDOUT',"HUMAN ")
  2089.     ansBUF=ansBUF||'Cmp $(event) LOGIN'||lf||'TrueJump user_input'||lf
  2090. end
  2091. ansBUF=ansBUF||'Cmp $(event) GOTYOOHOO'||lf||'TrueJump login_wazoo'||lf
  2092. if addemsi then ansBUF=ansBUF||'Pattern $(event) #?EMSI#?'||lf||'TrueJump login_emsi'||lf
  2093. ansBUF=ansBUF||'Cmp $(event) FTS1'||lf||'TrueJump login_fts1'||lf
  2094. ansBUF=ansBUF||'Cmp $(event) CARRIER'||lf||'TrueJump lost_carrier'||lf
  2095. ansBUF=ansBUF||'Cmp $(event) TIMEOUT'||lf||'TrueJump timeout_exit'||lf
  2096. ansBUF=ansBUF||'Jump get_login'||lf
  2097.  
  2098. ansBUF=ansBUF||'login_wazoo:'||lf||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) WAZOO"'||lf||'SubJump wazoo'||lf||'FalseJump loginerr'||lf
  2099. ansBUF=ansBUF||'Set expect 2U2'||lf||'WazooRespond'||lf||'Cmp $(event) $(expect)'||lf||'FalseJump loginerr'||lf||'Cmp $(pw) DEFERRED'||lf||'FalseJump login1'||lf||'SubJump dolookup'||lf||'TrueJump login2'||lf||'Jump loginerr'||lf
  2100. ansBUF=ansBUF||'login1:'||lf||'SubJump ck_multiftn'||lf
  2101. ansBUF=ansBUF||'login2:'||lf||'SetPri $(launchpri)'||lf||'Set state "SESSION INBOUND $(remote.address)"'||lf
  2102. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address)"'||lf
  2103. if ROOFLOG then ansBUF=ansBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Inbound WAZOO FTN Session $(remote.address) @ $(baud)"'||lf
  2104. ansBUF=ansBUF||'Set called $(remote.address)'||lf||'Set RC $(useakasin.$(remote.address))'||lf||'FalseJump login3'||lf||'Set called "$(akalist.$(remote.number))"'||lf
  2105. ansBUF=ansBUF||'login3:'||lf||'BeginSession $(called)'||lf||'Cmp $(host.wzcap) 8'||lf||'TrueJump zedzapin'||lf||'Cmp $(host.wzcap) 4'||lf||'TrueJump zedzipin'||lf||'Cmp $(host.wzcap) 1'||lf||'TrueJump dietifnain'||lf
  2106. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) FTS1 fallback"'||lf||'Jump lotekin'||lf
  2107.  
  2108. ansBUF=ansBUF||'login_fts1:'||lf||'Set state "SESSION $(session) $(event)"'||lf||'SetA remote fidonet#1:1/1.1'||lf
  2109. ansBUF=ansBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.remote) $(remote.address)"'||lf
  2110. if ~umbrella & addfreq then ansBUF=ansBUF||'Cmp ${'envpath'FTSFREQS} TRUE'||lf||'TrueJump lotekin'||lf
  2111. ansBUF=ansBUF||'Set host.wzext "-Freq +Domain" host.freq FALSE'||lf||'Jump lotekin'||lf
  2112.  
  2113. ansBUF=ansBUF||'timeout_exit:'||lf||'Set txt $(timeout)'||lf||'SubJump showtxt'||lf||'Delay 2'||lf||'Jump freeline'||lf
  2114. ansBUF=ansBUF||'loginerr:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) WAZOO Negotiation failed:[$(event)] expected:[$(expect)]"'||lf
  2115. ansBUF=ansBUF||'Clear expect'||lf||'ReplyCall 111'||lf||'EndSession all'||lf||'Jump freeline'||lf
  2116. return
  2117.  
  2118. genaftersession:
  2119. call writech('STDOUT',lf||"Generating AfterSession Process code: ")
  2120. asBUF=asBUF||'aftersession:'||lf||'SetStatus NULL:'||lf
  2121. asBUF=asBUF||'SubJump openslave'||lf||'FalseJump freeline'||lf||'SetPri $(launchpri)'||lf
  2122. asBUF=asBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf||'SetStatus NULL:'||lf
  2123. asBUF=asBUF||'Set state "SESSION PROCESSING" issecure TRUE user FALSE'||lf
  2124. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf
  2125. call writech('STDOUT',"SORT ")
  2126. asBUF=asBUF||'aftersession.sort:'||lf||'Set RC $(mail)'||lf||'FalseJump aftersession.tic'||lf
  2127. asBUF=asBUF||'Set RC $(multihub) multihub FALSE'||lf||'FalseJump aftersession.mail'||lf
  2128. /*asBUF=asBUF||'Set RC "$(sortsess.$(remote.address))"'||lf||'FalseJump noSSS'||lf  */
  2129. asBUF=asBUF||'Cmp "$(sortsess.$(remote.address))" ""'||lf||'TrueJump noSSS'||lf
  2130. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Site AfterSession $(sortsess.$(remote.address))"'||lf
  2131. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Site AfterSession: $(sortsess.$(remote.address))"'||lf
  2132. asBUF=asBUF||'Set systemcmd "$(sortsess.$(remote.address))"'||lf||'Jump SSS'||lf
  2133. asBUF=asBUF||'noSSS:'||lf
  2134. /*asBUF=asBUF||'Set RC "${'envpath'SORTSESS}"'||lf||'FalseJump aftersession.mail'||lf   */
  2135. asBUF=asBUF||'Cmp "${'envpath'SORTSESS}" ""'||lf||'TrueJump aftersession.mail'||lf
  2136. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) AfterSession ${'envpath'SORTSESS}"'||lf
  2137. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AfterSession:${'envpath'SORTSESS}"'||lf
  2138. asBUF=asBUF||'Set systemcmd "${'envpath'SORTSESS}"'||lf
  2139. asBUF=asBUF||'SSS:'||lf||'SubJump runsync'||lf||'Set mail FALSE'||lf||'Jump aftersession.tic'||lf
  2140. call writech('STDOUT',"MAIL ")
  2141. asBUF=asBUF||'aftersession.mail:'||lf||'Set RC $(mail) mail FALSE'||lf||'FalseJump aftersession.tic'||lf
  2142. /*asBUF=asBUF||'Set RC "$(impsess.$(remote.address))"'||lf||'FalseJump noISS'||lf   */
  2143. asBUF=asBUF||'Cmp "$(impsess.$(remote.address))" ""'||lf||'TrueJump noISS'||lf
  2144. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Site AfterSession $(impsess.$(remote.address))"'||lf
  2145. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Site AfterSession: $(impsess.$(remote.address))"'||lf
  2146. asBUF=asBUF||'Set systemcmd "$(impsess.$(remote.address))"'||lf||'Jump ISS'||lf
  2147. asBUF=asBUF||'noISS:'||lf
  2148. /*asBUF=asBUF||'Set RC ${'envpath'IMPSESS}'||lf||'FalseJump aftersession.tic'||lf   */
  2149. asBUF=asBUF||'Cmp "${'envpath'IMPSESS}" ""'||lf||'TrueJump aftersession.tic'||lf
  2150. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) AfterSession ${'envpath'IMPSESS}"'||lf
  2151. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AfterSession:${'envpath'IMPSESS}"'||lf
  2152. asBUF=asBUF||'Set systemcmd "${'envpath'IMPSESS}"'||lf
  2153. asBUF=asBUF||'ISS:'||lf||'SubJump runsync'||lf
  2154. call writech('STDOUT',"TIC ")
  2155. asBUF=asBUF||'aftersession.tic:'||lf||'Set RC $(tic)'||lf||'FalseJump aftersession.freq'||lf
  2156. /*asBUF=asBUF||'Set RC "$(ticsess.$(remote.address))"'||lf||'FalseJump noFSS'||lf   */
  2157. asBUF=asBUF||'Cmp "$(ticsess.$(remote.address))" ""'||lf||'TrueJump noFSS'||lf
  2158. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Site AfterSession $(ticsess.$(remote.address))"'||lf
  2159. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Site AfterSession: $(ticsess.$(remote.address))"'||lf
  2160. asBUF=asBUF||'Set systemcmd "$(ticsess.$(remote.address))"'||lf||'Jump FSS'||lf
  2161. asBUF=asBUF||'noFSS:'||lf
  2162. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) AfterSession ${'envpath'TICSESS}"'||lf
  2163. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AfterSession:${'envpath'TICSESS}"'||lf
  2164. asBUF=asBUF||'Set tic FALSE systemcmd "${'envpath'TICSESS}"'||lf
  2165. asBUF=asBUF||'FSS:'||lf||'SubJump runsync'||lf
  2166. call writech('STDOUT',"FREQ ")
  2167. asBUF=asBUF||'aftersession.freq:'||lf||'Set RC $(freq)'||lf||'FalseJump aftersession.term'||lf
  2168. /*asBUF=asBUF||'Set RC "$(freqsess.$(remote.address))"'||lf||'FalseJump noRSS'||lf  */
  2169. asBUF=asBUF||'Cmp "$(freqsess.$(remote.address))" ""'||lf||'TrueJump noRSS'||lf
  2170. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Site AfterSession $(freqsess.$(remote.address))"'||lf
  2171. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Site AfterSession: $(freqsess.$(remote.address))"'||lf
  2172. asBUF=asBUF||'Set systemcmd "$(freqsess.$(remote.address))"'||lf||'Jump RSS'||lf
  2173. asBUF=asBUF||'noRSS:'||lf
  2174. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'statgroup' $<p.status) AfterSession ${'envpath'FREQSESS}"'||lf
  2175. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AfterSession:${'envpath'FREQSESS}"'||lf
  2176. asBUF=asBUF||'Set freq FALSE systemcmd "${'envpath'FREQSESS}"'||lf
  2177. asBUF=asBUF||'RSS:'||lf||'SubJump runsync'||lf
  2178. call writech('STDOUT',"TERM "||lf)
  2179. asBUF=asBUF||'aftersession.term:'||lf||'Set RC $(term)'||lf||'FalseJump aftersession_end'||lf
  2180. /*asBUF=asBUF||'Set RC "$(termsess.$(remote.address))"'||lf||'FalseJump noTSS'||lf  */
  2181. asBUF=asBUF||'Cmp "$(termsess.$(remote.address))" ""'||lf||'TrueJump noTSS'||lf
  2182. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) Site AfterSession $(termsess.$(remote.address))"'||lf
  2183. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Site AfterSession: $(termsess.$(remote.address))"'||lf
  2184. asBUF=asBUF||'Set systemcmd "$(termsess.$(remote.address))"'||lf||'Jump TSS'||lf
  2185. asBUF=asBUF||'noTSS:'||lf
  2186. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'statgroup' $<p.status) AfterSession ${'envpath'TERMSESS}"'||lf
  2187. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) AfterSession:${'envpath'TERMSESS}"'||lf
  2188. asBUF=asBUF||'Set term FALSE systemcmd "${'envpath'TERMSESS}"'||lf
  2189. asBUF=asBUF||'TSS:'||lf||'SubJump runsync'||lf
  2190.  
  2191. asBUF=asBUF||'aftersession_end:'||lf||'SubJump 'l_mailer'!fidonethost'||lf||'SubJump setglobals'||lf||'Set state "WAITING"'||lf
  2192. asBUF=asBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf
  2193. asBUF=asBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  2194. asBUF=asBUF||'Jump idleloopinit'||lf
  2195. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': asBUF:'length(asBUF)
  2196. return
  2197.  
  2198. genuser:
  2199. userBUF=userBUF||'j_user_input:'||lf
  2200. userBUF=userBUF||'Cmp $(chatmode) SYSOP'||lf||'TrueJump forcechat'||lf
  2201. userBUF=userBUF||'Set RC $(bootuser)'||lf||'TrueJump freeline'||lf
  2202. if addemsi then do
  2203. userBUF=userBUF||'Cmp $(namebuf) ""'||lf'TrueJump sendemsireq'||lf
  2204. end
  2205. userBUF=userBUF||'Cmp $(namebuf) ""'||lf
  2206. /*if addemsi then userBUF=userBUF'TrueJump sendemsireq'||lf */
  2207. /*else userBUF=userBUF||'TrueJump do_menu'||lf  */
  2208. userBUF=userBUF||'TrueJump do_menu'||lf
  2209. userBUF=userBUF||'Set state "SESSION LOGIN $(namebuf)"'||lf
  2210. if sc_user then userBUF=userBUF||'SetStatus "$(openstatus)"'||lf||'Print "$(state)\n"'||lf
  2211. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state) $(p.session) $(event) $(p.login) $(username) $(namebuf) $<time>"'||lf
  2212. if adduucp then do
  2213. call writech('STDOUT',"UUCP ")
  2214. userBUF=userBUF||'Pattern $(namebuf) uu#?'||lf
  2215. userBUF=userBUF||'TrueJump uucp_inbound'||lf
  2216. end
  2217. if power then do
  2218. userBUF=userBUF||'CmpI $(namebuf) BYE'||lf
  2219. userBUF=userBUF||'TrueJump aftersession'||lf
  2220. userBUF=userBUF||'Cmp $(namebuf) "${${'sysoppw'}}"'||lf
  2221. userBUF=userBUF||'TrueJump loadshell'||lf
  2222. end
  2223. userBUF=userBUF||'Cmp ${'envpath'ACCESS} TRUE'||lf
  2224. userBUF=userBUF||'FalseJump no_access'||lf
  2225. if power then do
  2226. userBUF=userBUF||'Cmp $(namebuf) "?"'||lf
  2227. userBUF=userBUF||'TrueJump showmenu'||lf
  2228. end
  2229.  
  2230. if ~nobbs then do
  2231.     userBUF=userBUF||'CmpI $(namebuf) BBS'||lf
  2232.     if gazebo then do
  2233.     userBUF=userBUF||'FalseJump do_menu'||lf
  2234.     if sendbull then userBUF=userBUF||'SubJump sendbull'||lf||'CheckCarrier'||lf||'FalseJump lost_carrier'||lf
  2235.     userBUF=userBUF||'Set RC ${'envpath'BBS}'||lf||'TrueJump bbsok'||lf||'Send "Board access disabled\r\n"'||lf||'Jump do_menu'||lf
  2236.     userBUF=userBUF||'bbsok:'||lf||'Set txt "'nl'  Please wait, 'bbsname.1' loading time depends on system load'nl'"'||lf
  2237.     userBUF=userBUF||'SubJump showtxt'||lf
  2238.     userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) 'bbsname.1'['bbscmd.1'] loading"'||lf
  2239.     userBUF=userBUF||'RexxMsg "SY,RY" REXX "Address COMMAND \"'bbscmd.1'\""'||lf||'Set RC $(RESULT1)'||lf
  2240.     userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) 'bbsname.1' RC:$(RC)"'||lf
  2241.     userBUF=userBUF||'Jump aftersession'||lf
  2242.     end /*GAZEBO*/
  2243.  
  2244.     if power then do
  2245.     select
  2246.         when escmode="MENU" then userBUF=userBUF||'TrueJump showmenu'||lf
  2247.         when escmode="SELECT" then userBUF=userBUF||'TrueJump selectbbs'||lf
  2248.         when escmode="BBS" then userBUF=userBUF||'TrueJump loadbbs1'||lf
  2249.         otherwise call errorexit('INVALID ESC-ESC option 'escmode,10)
  2250.     end
  2251. end
  2252. userBUF=userBUF||'Pattern $(namebuf) HELP#?'||lf||'TrueJump sendhelp'||lf
  2253. userBUF=userBUF||'Pattern $(wrxlist) #?$(namebuf)#?'||lf||'TrueJump loadwplrx'||lf
  2254. userBUF=userBUF||'CmpI $(namebuf) UL'||lf||'FalseJump not_upload'||lf
  2255. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf||'Jump zmodemrecv'||lf
  2256. userBUF=userBUF||'not_upload:'||lf
  2257. if ~notext then do
  2258. userBUF=userBUF||'CmpI $(namebuf) INFO'||lf||'FalseJump input.1'||lf
  2259. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2260. userBUF=userBUF||'submenu.text:'||lf||'CheckCarrier'||lf||'FalseJump freeline'||lf
  2261. userBUF=userBUF||'Cmp $(chatmode) SYSOP'||lf||'TrueJump forcechat'||lf
  2262. userBUF=userBUF||'Set RC $(bootuser)'||lf||'TrueJump freeline'||lf
  2263. if genmenufile then userBUF=userBUF||'SubJump SendMenu'||lf
  2264. else userBUF=userBUF||'SubJump 'l_mailer'menus!textmenu'||lf
  2265. userBUF=userBUF||'Set searchlist $(textlist)'||lf||'SubJump menu_input'||lf||'TrueSubJump sendtext'||lf
  2266. userBUF=userBUF||'Set RC $(inputerr)'||lf||'TrueJump freeline'||lf
  2267. userBUF=userBUF||'Set RC $(main)'||lf||'TrueJump do_menu'||lf
  2268. userBUF=userBUF||'Jump submenu.text'||lf
  2269. end /*text*/
  2270. if ~nomagic then do
  2271. userBUF=userBUF||'input.1:'||lf||'CmpI $(namebuf) MAGIC'||lf||'FalseJump input.2'||lf
  2272. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2273. userBUF=userBUF||'submenu.magic:'||lf||'CheckCarrier'||lf||'FalseJump freeline'||lf
  2274. userBUF=userBUF||'Cmp $(chatmode) SYSOP'||lf||'TrueJump forcechat'||lf
  2275. userBUF=userBUF||'Set RC $(bootuser)'||lf||'TrueJump freeline'||lf
  2276. if genmenufile then userBUF=userBUF||'SubJump SendMenu'||lf
  2277. else userBUF=userBUF||'SubJump 'l_mailer'menus!magicmenu'||lf
  2278. userBUF=userBUF||'Set searchlist $(adllist)'||lf||'SubJump menu_input'||lf||'TrueSubJump zmodemsend'||lf
  2279. userBUF=userBUF||'Set RC $(inputerr)'||lf||'TrueJump freeline'||lf
  2280. userBUF=userBUF||'Set RC $(main)'||lf||'TrueJump do_menu'||lf
  2281. userBUF=userBUF||'Jump submenu.magic'||lf
  2282. end
  2283. if ~nobbs then do
  2284. userBUF=userBUF||'input.2:'||lf||'CmpI $(namebuf) BOARD'||lf||'FalseJump input.3'||lf
  2285. if escmode="SELECT" then userBUF=userBUF||'selectbbs:'||lf
  2286. userBUF=userBUF||'Set RC ${'envpath'BBS}'||lf||'TrueJump bbsok'||lf||'Send "Sorry, board access is temporarly disabled'nl'"'||lf||'Jump do_menu'||lf
  2287. userBUF=userBUF||'bbsok:'||lf
  2288. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2289. userBUF=userBUF||'submenu.bbs:'||lf||'CheckCarrier'||lf||'FalseJump freeline'||lf
  2290. userBUF=userBUF||'Cmp $(chatmode) SYSOP'||lf||'TrueJump forcechat'||lf
  2291. userBUF=userBUF||'Set RC $(bootuser)'||lf||'TrueJump freeline'||lf
  2292. if genmenufile then userBUF=userBUF||'SubJump SendMenu'||lf
  2293. else userBUF=userBUF||'SubJump 'l_mailer'menus!bbsmenu'||lf
  2294. userBUF=userBUF||'Set searchlist $(bbslist)'||lf||'SubJump menu_input'||lf||'TrueSubJump loadbbs'||lf
  2295. userBUF=userBUF||'Set RC $(inputerr)'||lf||'TrueJump freeline'||lf
  2296. userBUF=userBUF||'Set RC $(main)'||lf||'TrueJump do_menu'||lf
  2297. userBUF=userBUF||'Jump submenu.bbs'||lf
  2298. end
  2299. if ~nodoor then do
  2300. userBUF=userBUF||'input.3:'||lf||'CmpI $(namebuf) DOOR'||lf||'FalseJump do_menu'||lf
  2301. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2302. userBUF=userBUF||'submenu.door:'||lf||'CheckCarrier'||lf||'FalseJump freeline'||lf
  2303. userBUF=userBUF||'Cmp $(chatmode) SYSOP'||lf||'TrueJump forcechat'||lf
  2304. userBUF=userBUF||'Set RC $(bootuser)'||lf||'TrueJump freeline'||lf
  2305. if genmenufile then userBUF=userBUF||'SubJump SendMenu'||lf
  2306. else userBUF=userBUF||'SubJump 'l_mailer'menus!doormenu'||lf
  2307. userBUF=userBUF||'Set searchlist $(doorlist)'||lf||'SubJump menu_input'||lf||'TrueSubJump loaddoor'||lf
  2308. userBUF=userBUF||'Set RC $(inputerr)'||lf||'TrueJump freeline'||lf
  2309. userBUF=userBUF||'Set RC $(main)'||lf||'TrueJump do_menu'||lf
  2310. userBUF=userBUF||'Jump submenu.door'||lf
  2311. end
  2312.  
  2313. userBUF=userBUF||'loadshell:'||lf||'Set user TRUE username "$(host.sysop)"'||lf
  2314. userBUF=userBUF||'RexxMsg "RY,SY" REXX "Address COMMAND \"Execute Mail:Scripts/AUXCLI\""'||lf
  2315. userBUF=userBUF||'Jump do_menu'||lf
  2316. end /*POWER*/
  2317.  
  2318. if ~umbrella then do
  2319. userBUF=userBUF||'no_access:'||lf||'Set txt "'nl' $(notumh)'nl'"'||lf
  2320. userBUF=userBUF||'RexxMsg SY "return( (time(m)<(left(word(\"$(umh)\",1),2)*60+right(word(\"$(umh)\",1),2)))|(time(m)>(left(word(\"$(umh)\",2),2)*60+right(word(\"$(umh)\",2),2))) )"'||lf
  2321. userBUF=userBUF||'Set RC $(result1)'||lf||'FalseJump notzmh'||lf
  2322. userBUF=userBUF||'RexxMsg "SY,RY" REXX "return (((left(word(\"$(umh)\",2),2))*60)-time(m))"'||lf
  2323. if gazebo then userBUF=userBUF||'Set txt "'nl'  BBS is not available during Universal Mail Hour'nl'  Call back in $(result2) minutes.'nl'"'||lf
  2324. else userBUF=userBUF||'Set txt "'nl'  $(namebuf) is not available during Universal Mail Hour'nl'  Call back in $(result2) minutes.'nl'"'||lf
  2325. userBUF=userBUF||'notzmh:'||lf||'SubJump showtxt'||lf
  2326. if gazebo then do
  2327. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Denied BBS access"'||lf
  2328. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Denied BBS access"'||lf
  2329. end;else do
  2330. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Refused access $(namebuf)"'||lf
  2331. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): $(username) denied access $(namebuf)"'||lf
  2332. end
  2333. userBUF=userBUF||'Jump do_menu'||lf
  2334. end
  2335.  
  2336. if sendbanner then do
  2337. userBUF=userBUF||'j_sendbanner:'||lf||'RexxMsg SY REXX "return exists(\"'bannerfile'\")"'||lf
  2338. userBUF=userBUF||'Set RC $(result1)'||lf||'FalseReturn'||lf
  2339. userBUF=userBUF||'SubJump ascii_start'||lf||'XprSetFile 'bannerfile' BANNER ""'||lf||'XprSend BANNER'||lf||'SubJump ascii_end'||lf||'Return'||lf
  2340. end
  2341. if sendbull then do
  2342. userBUF=userBUF||'j_sendbull:'||lf||'RexxMsg SY REXX "return exists(\"'bullfile'\")"'||lf
  2343. userBUF=userBUF||'Set RC $(result1)'||lf||'FalseReturn'||lf
  2344. userBUF=userBUF||'SubJump ascii_start'||lf||'XprSetFile 'bullfile' BULL ""'||lf||'XprSend BULL'||lf||'SubJump ascii_end'||lf||'Return'||lf
  2345. end
  2346.  
  2347. if power & genmenufile then do
  2348. userBUF=userBUF||'j_sendmenu:'||lf||'Set menufile "'menuvol'$(namebuf)'menuext'"'||lf
  2349. userBUF=userBUF||'SubJump ascii_start'||lf||'XprSetFile $(menufile) $(namebuf) ""'||lf||'XprSend $(namebuf)'||lf
  2350. userBUF=userBUF||'SubJump ascii_end'||lf||'clear menufile'||lf||'return'||lf
  2351. end
  2352.  
  2353. if power then do
  2354. userBUF=userBUF||'j_sendtext:'||lf||'SubJump ascii_start'||lf||'XprSetFile $($(namebuf)) $(namebuf) ""'||lf||'XprSend $(namebuf)'||lf||'SubJump ascii_end'||lf||'Return'||lf
  2355. userBUF=userBUF||'j_showmenu:'||lf||'SubJump get_user'||lf
  2356. if genmenufile then userBUF=userBUF||'Set namebuf MAIN'||lf||'TrueSubJump SendMenu'||lf
  2357. else userBUF=userBUF||'TrueSubJump 'l_mailer'menus!wplmenu'||lf
  2358. userBUF=userBUF||'Jump do_menu'||lf
  2359.  
  2360. userBUF=userBUF||'j_get_user:'||lf||'Set RC $(user)'||lf||'TrueReturn'||lf
  2361. userBUF=userBUF||'Set usrcmdbuf $(namebuf)'||lf
  2362. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(humanin)"'||lf
  2363. if sendbull then userBUF=userBUF||'SubJump sendbull'||lf||'CheckCarrier'||lf||'FalseJump lost_carrier'||lf
  2364.  
  2365. userBUF=userBUF||'Set txt "'nl'  Please enter your name: "'||lf||'SubJump showtxt'||lf
  2366. userBUF=userBUF||'GetInbound E0 $(loginwait)'||lf||'Cmp $(event) LOGIN'||lf||'FalseReturn'||lf
  2367. userBUF=userBUF||'RexxMsg SY REXX "x=space(\"$(namebuf)\",1);return((index(x,\"_\")=0)&(index(x,\".\")=0)&(index(x,\"?\")=0)&(words(x)>1)&(length(x)>6))"'||lf
  2368. userBUF=userBUF||'Set RC $(result1)'||lf||'TrueJump set_it'||lf
  2369. userBUF=userBUF||'Set txt "  Your real name is required to access our services'nl'  There should be no punctuation marks,'nl'  dashs are permitted.'nl'""'||lf||'SubJump showtxt'||lf
  2370. userBUF=userBUF||'Set namebuf $(usrcmdbuf) user FALSE RC FALSE'||lf||'Return'||lf
  2371.  
  2372. userBUF=userBUF||'set_it:'||lf
  2373. userBUF=userBUF||'RexxMsg "SY,RY" REXX "x=BITOR(space(\"$(namebuf)\",1),\"20\"x);y=\"\";do z=1 to words(x);y=y||Upper(Left(Word(x,z),1))||SubStr(Word(x,z),2)||\"20\"x;end;return strip(y)"'||lf
  2374. userBUF=userBUF||'Set username $(result2)'||lf
  2375. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "LOGLINE $<time> WPL$(line): Inbound HUMAN Session $(username) @ $(baud)"'||lf
  2376. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) USER"'||lf
  2377. userBUF=userBUF||'RexxMsg "SY,RY" REXX "return upper(translate(\"$(namebuf)\",\"_\",\" \"))" '||lf
  2378. userBUF=userBUF||'SetA remote "$(result2)#0:0/0.0"'||lf
  2379. userBUF=userBUF||'RexxMsg "SY,RY" REXX "return translate(\"$(remote.address)\",\"...\",\"#:/\")"'||lf
  2380. userBUF=userBUF||'Set YourMail "LOG:RFSacct/h/$(result2).m"'||lf
  2381. userBUF=userBUF||'Send "  Hello, $(username)'nl'"'||lf
  2382. userBUF=userBUF||'Set state "Inbound Session $(username)"'||lf
  2383. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state)"'||lf
  2384. if addspeech then do
  2385. userBUF=userBUF||'Set sl 70 speech $(state)'||lf||'SubJump sayit '||lf
  2386. end
  2387. userBUF=userBUF||'RexxMsg SY REXX "return exists(\"$(YourMail)\")"'||lf||'Set RC $(result1)'||lf||'TrueSubJump showmsg'||lf
  2388. userBUF=userBUF||'Clear YourMail'||lf
  2389. userBUF=userBUF||'Set namebuf "$(usrcmdbuf)" remote.network FIDO inbound $(userdir) user TRUE RC TRUE'||lf
  2390. userBUF=userBUF||'Return'||lf
  2391.  
  2392. userBUF=userBUF||'showmsg:'||lf
  2393. userBUF=userBUF||'Print "Sending sysop message to $(username)\n"'||lf
  2394. userBUF=userBUF||'Send "  The sysop left this message for you, $(username)'nl||nl'"'||lf
  2395. userBUF=userBUF||'SubJump ascii_start'||lf||'XprSetFile $(YourMail) "YourMail" ""'||lf||'XprSend "YourMail"'||lf
  2396. userBUF=userBUF||'SubJump ascii_end'||lf
  2397. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(msgout)"'||lf
  2398. userBUF=userBUF||'CmpI $(usrcmdbuf) NOTE'||lf||'TrueReturn'||lf
  2399. userBUF=userBUF||'Print "Asking $(username) for reply to sysop message\n"'||lf
  2400. userBUF=userBUF||'Send "  If you missed the message, you can see it again on your next'nl'"'||lf
  2401. userBUF=userBUF||'Send "  call. It will be deleted after you reply to it.'nl||nl'"'||lf
  2402. userBUF=userBUF||'Send "  Do you wish to reply NOW? (y/N):"'||lf
  2403. userBUF=userBUF||'GetInbound E0 $(loginwait)'||lf
  2404. userBUF=userBUF||'Cmp $(event) LOGIN'||lf||'FalseReturn'||lf
  2405. userBUF=userBUF||'CmpI $(namebuf) Y'||lf||'FalseReturn'||lf
  2406. userBUF=userBUF||'Print "$(username) repling\n"'||lf||'Set session NOTE'||lf
  2407. userBUF=userBUF||'Set txt "'nl'  Please wait $(username), $(session) loading time depends on system load'nl'"'||lf
  2408. userBUF=userBUF||'SubJump showtxt'||lf
  2409. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) loading for $(username)"'||lf
  2410. userBUF=userBUF||'Address REXX "$(rexxdir)$(session) $(baud) $(line) $(username)"'||lf
  2411. userBUF=userBUF||'Print "Reply completed\n"'||lf
  2412. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(msgin)"'||lf
  2413. userBUF=userBUF||'Return'||lf
  2414.  
  2415. userBUF=userBUF||'forcechat:'||lf
  2416. userBUF=userBUF||'Print "Forcing chat with $(username)\n"'||lf||'Set session CHAT'||lf
  2417. userBUF=userBUF||'Set txt "'nl'  Please wait $(username), $(sysop) is coming online'nl'"'||lf
  2418. userBUF=userBUF||'SubJump showtxt'||lf
  2419. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) loading for $(username)"'||lf
  2420. userBUF=userBUF||'Address REXX "$(rexxdir)$(session) $(baud) $(line) $(username) SYSOP"'||lf
  2421. userBUF=userBUF||'Print "Chat completed\n"'||lf
  2422. userBUF=userBUF||'Jump do_menu'||lf
  2423.  
  2424. userBUF=userBUF||'j_sendhelp:'||lf||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2425. userBUF=userBUF||'Print "Sending $(namebuf) help to $(username)\n"'||lf
  2426. userBUF=userBUF||'RexxMsg "SY,RY" REXX "if words(\"$(namebuf)\")=2 then return \"INFO:\"||subword(strip(\"$(namebuf)\"),2)||\".hlp\"; else return \"INFO:HELP.HLP\""'||lf
  2427. userBUF=userBUF||'Set helpfile $(result2)'||lf||'RexxMsg SY REXX "return exists(\"$(helpfile)\")"'||lf
  2428. userBUF=userBUF||'Set RC $(result1)'||lf||'FalseJump no_help'||lf
  2429. userBUF=userBUF||'SubJump ascii_start'||lf||'XprSetFile $(helpfile) "$(namebuf).HLP" ""'||lf
  2430. userBUF=userBUF||'XprSend "$(namebuf).HLP"'||lf||'SubJump ascii_end'||lf
  2431. userBUF=userBUF||'Jump do_menu'||lf
  2432.  
  2433. userBUF=userBUF||'no_help:'||lf||'Set txt "'nl'  Sorry, there is presently no help for $(namebuf)'nl'"'||lf||'SubJump showtxt'||lf||'Jump do_menu'||lf
  2434.   
  2435. userBUF=userBUF||'j_menu_input:'||lf||'Set inputerr FALSE main FALSE'||lf||'Clear event namebuf'||lf
  2436. userBUF=userBUF||'GetInbound E0 $(loginwait)'||lf
  2437. userBUF=userBUF||'Cmp $(event) TIMEOUT'||lf||'FalseJump menu_input.1'||lf
  2438. userBUF=userBUF||'Set txt $(timeout)'||lf||'SubJump showtxt'||lf
  2439. userBUF=userBUF||'Set inputerr TRUE RC FALSE'||lf||'Return'||lf
  2440.  
  2441. userBUF=userBUF||'menu_input.1:'||lf
  2442. userBUF=userBUF||'Cmp $(event) CARRIER'||lf||'FalseJump menu_input.2'||lf
  2443. userBUF=userBUF||'Set inputerr TRUE RC FALSE'||lf||'Return'||lf
  2444.  
  2445. userBUF=userBUF||'menu_input.2:'||lf
  2446. userBUF=userBUF||'Cmp $(event) LOGIN'||lf||'FalseReturn'||lf
  2447. userBUF=userBUF||'CmpI $(namebuf) ""'||lf||'FalseJump menu_input.3'||lf
  2448. userBUF=userBUF||'Set main TRUE RC FALSE'||lf||'Return'||lf
  2449.  
  2450. userBUF=userBUF||'menu_input.3:'||lf
  2451. userBUF=userBUF||'Pattern $(searchlist) #?$(namebuf)#?'||lf||'TrueReturn'||lf
  2452. userBUF=userBUF||'Send "  Sorry, selection $(namebuf) is unavailable.'nl'"'||lf
  2453. userBUF=userBUF||'Set RC FALSE'||lf||'Return'||lf
  2454.  
  2455. userBUF=userBUF||'j_loadwplrx:'||lf||'Set session $(namebuf)'||lf
  2456. userBUF=userBUF||'SubJump get_user'||lf||'FalseJump do_menu'||lf
  2457. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) $(session) $(p.login) $(username) $<time>"'||lf
  2458. userBUF=userBUF||'Set txt "'nl'  Please wait $(username), $(session) loading time depends on system load'nl'"'||lf||'SubJump showtxt'||lf
  2459. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) loading for $(username)"'||lf
  2460. userBUF=userBUF||'Address REXX "$(rexxdir)$(session) $(baud) $(line) $(username)"'||lf
  2461. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) RC:$(RC)"'||lf
  2462. userBUF=userBUF||'Jump do_menu'||lf
  2463.  
  2464. if ~nodoor then do
  2465. userBUF=userBUF||'j_loaddoor:'||lf||'Set session "$(doorname.$(namebuf))" systemcmd "$(door.$(namebuf))"'||lf
  2466. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) $(session) $(p.login) $(username) $<time>"'||lf
  2467. userBUF=userBUF||'Set txt "'nl'  Please wait $(username), $(session) loading time depends on system load'nl'"'||lf||'SubJump showtxt'||lf
  2468. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) loading for $(username)"'||lf
  2469. userBUF=userBUF||'Address REXX "$(rexxdir)DOOR $(baud) $<port> \"$(username)\" $(systemcmd)"'||lf
  2470. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) RC:$(RC)"'||lf
  2471. userBUF=userBUF||'Return'||lf
  2472. end
  2473.  
  2474. if ~nobbs then do
  2475. if escmode="BBS" then do
  2476. userBUF=userBUF||'loadbbs1:'||lf
  2477. userBUF=userBUF||'Set RC ${'envpath'BBS}'||lf||'TrueJump load1ok'||lf||'Send "Sorry, board access is temporarly disabled'nl'"'||lf||'Jump freeline'||lf
  2478. userBUF=userBUF||'load1ok:'||lf||'Set namebuf "1"'||lf||'Set exitbbs TRUE'||lf
  2479. end
  2480. userBUF=userBUF||'j_loadbbs:'||lf||'Set session "BBS $(bbsname.$(namebuf))" systemcmd "$(bbs.$(namebuf)) $(baud) $(line)"'||lf
  2481. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.session) $(session) $(p.login) $(username) $<time>"'||lf
  2482. if ROOFLOG then userBUF=userBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(bbsin)"'||lf
  2483. userBUF=userBUF||'Set txt "'nl'  Please wait $(username), $(session) loading time depends on system load'nl'"'||lf||'SubJump showtxt'||lf
  2484. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) loading for $(username)"'||lf
  2485. userBUF=userBUF||'RexxMsg "SY,RY" REXX "Address COMMAND \"$(systemcmd)\""'||lf||'Set RC $(RESULT1)'||lf
  2486. userBUF=userBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(session) RC:$(RC)"'||lf
  2487. if escmode="BBS" then userBUF=userBUF'Set RC $(exitbbs)'||lf||'Clear exitbbs'||lf||'TrueJump freeline'||lf
  2488. userBUF=userBUF||'Return'||lf
  2489. end /*nobbs*/
  2490. end /*POWER*/
  2491. return
  2492.  
  2493. genloop:
  2494. loopBUF=loopBUF||'lost_carrier:'||lf||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Caller dropped carrier"'||lf
  2495. loopBUF=loopBUF||'ModemClear'||lf||'ModemInit'||lf
  2496. loopBUF=loopBUF||'freeline:'||lf
  2497. if ~sc_modem then loopBUF=loopBUF||'SetStatus NULL:'||lf
  2498. if power then loopBUF=loopBUF||'Clear bootuser'||lf
  2499. loopBUF=loopBUF||'ModemClear'||lf||'SetPri $(launchpri)'||lf
  2500. loopBUF=loopBUF||'Cmp $(exit) RESTART'||lf||'TrueJump closeslave'||lf
  2501. loopBUF=loopBUF||'Set RC $<abort>'||lf||'TrueJump closeslave'||lf
  2502. loopBUF=loopBUF||'Set State "BUSY MODEM CLOSE"'||lf||'ModemClose'||lf||'System "Wait 3"'||lf
  2503. loopBUF=loopBUF||'slaveloop:'||lf||'SubJump setglobals'||lf||'SubJump openslave'||lf
  2504. loopBUF=loopBUF||'TrueJump aftersession_end'||lf
  2505. loopBUF=loopBUF||'Set state "'u_mailer'$(line) MODEM DEAD on $(state)"'||lf
  2506. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf
  2507. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) $(state)"'||lf
  2508.  
  2509. loopBUF=loopBUF||'ModemClose'||lf||'SubJump openslave'||lf||'TrueJump aftersession_end'||lf
  2510.  
  2511. if roof then loopBUF=loopBUF||'RexxMsg FY ROOFLOG "CLOSESTATUS WPL $(line)"'||lf
  2512. else loopBUF=loopBUF||'RexxMsg "" REXX "$(rexxdir)SHELTER.rexx CLOSESTATUS $(line)"'||lf
  2513.  
  2514. loopBUF=loopBUF||'Jump closelogs'||lf
  2515. loopBUF=loopBUF||'closeslave:'||lf||'Set state "MODEM CLOSE"'||lf
  2516. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.status) $(state)"'||lf
  2517. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Closing modem Slave$(line)"'||lf
  2518. loopBUF=loopBUF||'ModemClose'||lf
  2519.  
  2520. if roof then loopBUF=loopBUF||'RexxMsg FY ROOFLOG "CLOSESTATUS WPL $(line)"'||lf
  2521. else loopBUF=loopBUF||'RexxMsg "" REXX "$(rexxdir)SHELTER.rexx CLOSESTATUS $(line)"'
  2522.  
  2523. loopBUF=loopBUF||'Cmp $(exit) RESTART'||lf||'FalseJump closelogs'||lf
  2524. loopBUF=loopBUF||'recompile:'||lf||'Cmp $(line) 1'||lf||'FalseReturn'||lf
  2525. loopBUF=loopBUF||'Set state "RECOMPILING"'||lf
  2526. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Re-compile requested Slave$(line)"'||lf
  2527. loopBUF=loopBUF||'closelogs:'||lf||'LoadScript xcache ""'||lf||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf||'Return'||lf
  2528. loopBUF=loopBUF||'openslave:'||lf||'Set State "BUSY MODEM OPEN"'||lf||'ModemClear'||lf||'ModemClose'||lf
  2529. loopBUF=loopBUF||'ModemOpen'||lf||'FalseReturn'||lf||'SetBaud $(lockedrate)'||lf||'ModemInit'||lf||'Return'||lf
  2530. loopBUF=loopBUF||'idleloopinit:'||lf||'Cmp $(exit) CACHE'||lf||'FalseJump idl.1'||lf
  2531. loopBUF=loopBUF||'SubJump xcache!setcache'||lf
  2532. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) ReLoaded Cache"'||lf
  2533. loopBUF=loopBUF||'RexxMsg NY LOGPROC "FlushLog 'loggroup'"'||lf
  2534. loopBUF=loopBUF||'Clear exit'||lf
  2535. loopBUF=loopBUF||'idl.1:'||lf
  2536. loopBUF=loopBUF||'; this commented section is suggested by Russ in order to'||lf
  2537. loopBUF=loopBUF||'; allow external REXX calls a safe window to call ModemOpen'||lf
  2538. loopBUF=loopBUF||';Set state "BUSY WAITEVENT"'||lf
  2539. loopBUF=loopBUF||';WaitEvent 5'||lf
  2540. loopBUF=loopBUF||';Print "WaitEvent:$(event)\n"'||lf
  2541. loopBUF=loopBUF||'RexxMsg "SY,RY" REXX "Return left(time(),5)"'||lf
  2542. loopBUF=loopBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' @1,55,6 @R $(result2)"'||lf
  2543. loopBUF=loopBUF||'Set state "BUSY MODEM INIT"'||lf||'SubJump 'l_mailer'modem!modeminit'||lf
  2544. loopBUF=loopBUF||';  ModemInit'||lf
  2545. loopBUF=loopBUF||'FalseJump freeline'||lf
  2546. loopBUF=loopBUF||'Set state "WAITING"'||lf||'CheckCall'||lf||'TrueJump dodial'||lf
  2547. loopBUF=loopBUF||'Set RC $<abort>'||lf||'TrueJump closeslave'||lf
  2548. loopBUF=loopBUF||'waitring:'||lf||'Set OwnDevUnit TRUE CallInterupt TRUE'||lf
  2549. loopBUF=loopBUF||'GetResponse $(wakeup)'||lf||'Set OwnDevUnit FALSE CallInterupt FALSE'||lf
  2550. loopBUF=loopBUF||'Cmp $(event) OWNDEVUNIT'||lf||'TrueJump freeline'||lf
  2551. if ~noanswer then loopBUF=loopBUF||'Cmp $(event) RING'||lf||'TrueJump answer'||lf
  2552. loopBUF=loopBUF||'Jump idleloopinit'||lf
  2553. return
  2554.  
  2555. genvars:
  2556. varBUF=varBUF||'j_setglobals:'||lf
  2557. if power then do
  2558. varBUF=varBUF||'Cmp $(user) TRUE'||lf||'FalseJump sg.1'||lf
  2559. varBUF=varBUF||'SetEnv VUSER'line' FALSE'||lf
  2560. varBUF=varBUF||'sg.1:'||lf||'Set send FALSE user FALSE'||lf
  2561. end
  2562. varBUF=varBUF||'SubJump clearglobals'||lf
  2563. varBUF=varBUF||'Set host.wzcap 13 host.wzprot "DietIFNA ZedZip ZedZap"'||lf 
  2564. if addfreq then varBUF=varBUF||'Set host.wzext "+Freq +Domain" host.freq "TRUE"'||lf
  2565. else varBUF=varBUF||'Set host.wzext "-Freq +Domain" host.freq "FALSE"'||lf
  2566. varBUF=varBUF||'SubJump 'l_mailer'!fidonethost'||lf
  2567. if addemsi then varBUF=varBUF||'Set host.flags $(emsi.flags) host.link $(emsi.link) host.compat $(emsi.compat) host.addresses "'strip(myakas)'"'||lf
  2568. varBUF=varBUF||'Set MaxSendPri 127 MinSendPri -127 crash FALSE nopickup FALSE'||lf
  2569. varBUF=varBUF||'Set baud 'lockbps' resume FALSE multihub FALSE issecure TRUE dial $(DialString) useline $(line)'||lf
  2570. varBUF=varBUF||'Set term FALSE fax FALSE'||lf||'SetMailerFlags "DY,PY"'||lf
  2571. varBUF=varBUF||'System "SetEnv WPLNAME \"'u_mailer smver vdate'\""'||lf
  2572. varBUF=varBUF||'Return'||lf
  2573.  
  2574. varBUF=varBUF||'j_clearglobals:'||lf
  2575. if ROOFLOG then varBUF=varBUF||'Clear calltask.$(remote.address) callcount.$(remote.address)'||lf
  2576. varBUF=varBUF||'Clear session protocol systemcmd dialrc host.wzext fts1 isoutbound'||lf
  2577. varBUF=varBUF||'Clear infile remfile localfile recfile filesize filestatus called'||lf
  2578. varBUF=varBUF||'Clear event lastresponse resp ENTRY NameBuf OwnDevUnit UserName temp'||lf
  2579. varBUF=varBUF||'Clear remote.text remote.network remote.address'||lf
  2580. varBUF=varBUF||'Clear remote.domain remote.zone remote.net remote.node remote.point'||lf
  2581. varBUF=varBUF||'Clear remote.number remote.cost remote.maxbaud remote.flags'||lf
  2582. varBUF=varBUF||'Clear remote.sitename remote.sysop remote.password'||lf
  2583. varBUF=varBUF||'Clear remote.wzcap remote.wzdomain remote.product remote.product_maj remote.product_min remote.freq'||lf
  2584. varBUF=varBUF||'Clear searchlist inputerr main usrcmdbuf tmpbaud tmpbuf RC Result1 Result2'||lf
  2585. if addemsi then varBUF=varBUF||'Clear emsireqsent remote.addresses remote.compat remote.baud remote.link remote.city remote.mailer remote.product remote.version remote.serial'||lf
  2586. varBUF=varBUF||'Return'||lf
  2587. if debug & log then address 'ROOFLOG' 'logline' left(time(),5) script': vaBUF:'length(varBUF)
  2588. return
  2589.  
  2590. set_sitetype: procedure
  2591. if left(upper(arg(1)),3)="BBS" then return 5
  2592. else if left(upper(arg(1)),3)="FAX" then return 4
  2593. else if left(upper(arg(1)),5)="CLOCK" then return 3
  2594. else if (left(upper(arg(1)),2)="UU"|datatype(right(arg(1),2),'MIXED')) then return 2
  2595. else return 1
  2596.  
  2597. gencache:
  2598. if ~open('cfg',cachecfg,'r') then call ERRORABORT('Cannot find 'cachecfg,10)
  2599. /* allowable keywords per site type */
  2600. dtype.5="BBS"
  2601. keys.5='number altnum line dial sitename sysop term predial termsess'
  2602. dtype.4="FAX"
  2603. keys.4='number altnum line dial sysop xprsetup predial'
  2604. dtype.3="CLOCK"
  2605. keys.3='number altnum line dial sitename baud xprsetup predial'
  2606. dtype.2="UUCP"
  2607. keys.2='number altnum line dial sitename sysop password uuoptions predial impsess'
  2608. dtype.1="FTN"
  2609. keys.1='number altnum line dial sitename sysop password multi useakasin useakasout handshake present predial presess impsess freqsess ticsess'
  2610. htype.3="EMSI" ;hoflag.3="GE,DE,"
  2611. htype.2="WAZOO";hoflag.2="G6,D6,"
  2612. htype.1="FTS1" ;hoflag.1="G1,D1,"
  2613.     say 'Parsing 'cachecfg
  2614.     i=1
  2615.     do while ~eof('cfg')
  2616.         call writech('STDOUT','.')
  2617.         line.i=readln('cfg')
  2618.         if line.i="" | left(line.i,2)='/*' | left(line.i,2)='*/' then iterate
  2619.         i=i+1
  2620.     end
  2621.     call close('cfg')
  2622.     drop cfg
  2623.     say;call writech('STDOUT','Compiling')
  2624.     end=i-1
  2625.     nodes=0;numbers=0;dohs=0
  2626.     houtflags=""
  2627.     lf='0a'x
  2628.     writebuf="setcache:"||lf
  2629.     do i=1 to end
  2630.         call writech('STDOUT','.')
  2631.         drop j k
  2632.         x=line.i;wplvar=word(x,1);wplvalue=strip(subword(x,2))
  2633.  
  2634.         if upper(wplvar)="NODE" then do
  2635.             if numberBUF~="NUMBERBUF" & akas > 1 then do
  2636.                 numberbuf=strip(numberbuf)||lf
  2637.                 if altnumbuf="Set " then altnumbuf=""
  2638.                     else altnumbuf=strip(altnumbuf)||lf
  2639.                 sysopbuf=strip(sysopbuf)||lf
  2640.                 sitenamebuf=strip(sitenamebuf)||lf
  2641.                 passwordbuf=strip(passwordbuf)||lf
  2642.                 if useakasinbuf="Set " then useakasinbuf=""
  2643.                     else useakasinbuf=strip(useakasinbuf)||lf
  2644.                 if useakasoutbuf="Set " then useakasoutbuf=""
  2645.                     else useakasoutbuf=strip(useakasoutbuf)||lf
  2646.                 if multibuf="Set " then multibuf=""
  2647.                     else multibuf=strip(multibuf)||lf
  2648.                 writebuf=writebuf||numberbuf||altnumbuf||sysopbuf||sitenamebuf||passwordbuf
  2649.                 drop numberbuf altnumbuf sysopbuf sitenamebuf passwordbuf
  2650.                 writebuf=writebuf||useakasinbuf||useakasoutbuf||multibuf
  2651.                 drop useakasinbuf useakasoutbuf multibuf
  2652.             end
  2653.             numberbuf="Set "
  2654.             altnumbuf="Set "
  2655.             sysopbuf="Set "
  2656.             sitenamebuf="Set "
  2657.             passwordbuf="Set "
  2658.             useakasinbuf="Set "
  2659.             useakasoutbuf="Set "
  2660.             multibuf="Set "
  2661.             if dohs then do
  2662.                 do j=1 to akas
  2663.                     writebuf=writebuf||'Set outflags.'node.j '"'strip(houtflags,'T',',')'"'||lf
  2664.                 end
  2665.                 dohs=0
  2666.                 houtflags=""
  2667.             end
  2668.             numbers=0;siteakalist=""
  2669.             akas=words(wplvalue)
  2670.             if akas > 1 then
  2671.             do j=1 to akas
  2672.                 node.j=word(wplvalue,j)
  2673.                 sitetype.j=set_sitetype(node.j)
  2674.                 if debug then Say "Found "sitetype.j" AKA" node.j
  2675.                 sitetype.j=set_sitetype(node.j)
  2676.                 if sitetype.j=1 then do
  2677.                     if debug then say 'Adding 'node.j' to akalist'
  2678.                     siteakalist=siteakalist||" "||node.j
  2679.                 end
  2680.                 nodes=nodes+1
  2681.             end;else do
  2682.                 j=1
  2683.                 node.j=wplvalue
  2684.                 sitetype.j=set_sitetype(node.j)
  2685.                 if debug then Say "Found "sitetype.j" Site" node.j
  2686.                 nodes=nodes+1
  2687.             end
  2688.         end;else do  /*not NODE entry */
  2689.             if wplvalue="" then iterate
  2690.  
  2691.             if upper(wplvar)="HANDSHAKE" then do
  2692.                 dohs=1
  2693.                 do h=1 to 3
  2694.                     if pos(htype.h,wplvalue) > 0 then do
  2695.                         houtflags=houtflags||hoflag.h
  2696.                     end
  2697.                 end
  2698.                 iterate
  2699.             end
  2700.  
  2701.             if upper(wplvar)="NUMBER" | upper(wplvar)="ALTNUM" then do
  2702.                 numbers=numbers+1
  2703.                 wplvalue=compress(wplvalue," -")
  2704.                 node.j.numbers=wplvalue
  2705.             end
  2706.  
  2707.             if akas > 1 then
  2708.             do k=1 to akas
  2709.                 stype=sitetype.k
  2710.                 if debug then say sitetype.k keys.stype
  2711.                 if index(keys.stype,wplvar)=0 then iterate
  2712.                 akawplvar=wplvar||'.'||node.k
  2713.                 if debug then Say "AKA:" node.k  akawplvar wplvalue   
  2714.  
  2715.                 if upper(wplvar)="NUMBER" & words(siteakalist) >1 then do
  2716.                     writebuf=writebuf||'Set akalist.'wplvalue '"'strip(siteakalist)'"'||lf
  2717.                     siteakalist=""   
  2718.                 end
  2719.                 select
  2720.                     when wplvar='number' then numberbuf=numberbuf||akawplvar '"'wplvalue'" '
  2721.                     when wplvar='altnum' then altnumbuf=altnumbuf||akawplvar '"'wplvalue'" '
  2722.                     when wplvar='sitename' then sitenamebuf=sitenamebuf||akawplvar '"'wplvalue'" '
  2723.                     when wplvar='sysop' then sysopbuf=sysopbuf||akawplvar '"'wplvalue'" '
  2724.                     when wplvar='password' then passwordbuf=passwordbuf||akawplvar '"'wplvalue'" '
  2725.                     when wplvar='useakasin' then useakasinbuf=useakasinbuf||akawplvar '"'wplvalue'" '
  2726.                     when wplvar='useakasout' then useakasoutbuf=useakasoutbuf||akawplvar '"'wplvalue'" '
  2727.                     when wplvar='multi' then multibuf=multibuf||akawplvar '"'wplvalue'" '
  2728.                     otherwise writebuf=writebuf||'Set 'akawplvar '"'wplvalue'"'||lf
  2729.                 end    
  2730.             end;else do
  2731.                 k=1
  2732.                 stype=sitetype.k
  2733.                 if debug then say sitetype.k keys.stype
  2734.                 if index(keys.stype,wplvar)=0 then do
  2735.                     say;say mwarn" Keyword" wplvar "invalid for "dtype.stype" site"
  2736.                     iterate
  2737.                 end
  2738.                 wplvar=wplvar||'.'||node.k
  2739.                 if debug then Say "NO AKA:" node.k wplvar wplvalue
  2740.                 writebuf=writebuf||'Set 'wplvar '"'wplvalue'"'||lf
  2741.             end
  2742.         end
  2743.     end
  2744.  
  2745.     writebuf=writebuf||"Return"||lf
  2746.     say
  2747.     call open('cw',cachewpl,"W")
  2748.     call writech('cw',writebuf)
  2749.     call close('cw')
  2750.     drop cw writebuf
  2751.     Say "Wrote "cachewpl
  2752.  
  2753.     if mode="CACHE" & show('P',u_mailer||"1") then do
  2754.         say "ReLoading "cachewpl
  2755.         address COMMAND 'LoadScript xcache' cachewpl
  2756.         if RC~=0 then CALL errorabort('Cannot load 'cachewpl,10)
  2757.         say "Cache loaded"
  2758.         if umbrella then ports=1
  2759.             else ports=GetClip('SLAVES')
  2760.         do i=ports to 1 by -1
  2761.             if show('p',u_mailer||i) then do
  2762.                 address VALUE u_mailer||i
  2763.                 'Set exit CACHE'
  2764.                 say u_mailer||i 'activated new cache'
  2765.             end
  2766.         end
  2767.     end
  2768.     nocache=0
  2769. return nocache
  2770.  
  2771. gencallscript:
  2772. scriptbuf=""
  2773. if umbrella then scriptbuf=scriptbuf||'.key a,b,c,d,e'||lf||'RUN RX ${'envpath'REXXDIR}/Scall <a> <b> <c> <d> <e>'||lf
  2774. else scriptbuf=scriptbuf||'.key a,b,c,d,e'||lf||'RUN RX ${'envpath'REXXDIR}/Scall <a> <b> <c> <d> <e>'||lf
  2775. call open('cs',callscript,"W")
  2776. call writech('cs',scriptbuf)
  2777. call close('cs')
  2778. drop cs scriptbuf
  2779. Say "Wrote "callscript
  2780. address COMMAND "PROTECT" callscript "SWERD"
  2781. return
  2782.  
  2783. genbootuserscript:
  2784. scriptbuf='.key line/a'||lf||'RUN RX "Address 'u_mailer'<line> Set bootuser TRUE"'||lf
  2785. call open('bus',buscript,"W")
  2786. call writech('bus',scriptbuf)
  2787. call close('bus')
  2788. drop bus scriptbuf
  2789. Say "Wrote "buscript
  2790. address COMMAND "PROTECT" buscript "SWERD"
  2791. return
  2792.  
  2793. get_fn:
  2794. if LastPos('/',arg(1))~=0 then return SubStr(arg(1),LastPos('/',arg(1))+1)
  2795. else if LastPos(':',arg(1))~=0 then return SubStr(arg(1),LastPos(':',arg(1))+1)
  2796. else return arg(1)
  2797.  
  2798. /* align text to right of field  adding spaces or trucating on left to fit   */
  2799. right_justify:
  2800. if length(arg(1))>arg(2) then return (right(arg(1),arg(2)))
  2801. else return (copies(" ",arg(2)-length(arg(1)))||arg(1))
  2802.  
  2803. /* align text to left of field  adding spaces or trucating on right to fit   */
  2804. left_justify:
  2805. if length(arg(1))>arg(2) then return (left(arg(1),arg(2)))
  2806. else return (arg(1)||copies(" ",arg(2)-length(arg(1))))
  2807.  
  2808. /* Walt Sullivan */
  2809. expand: procedure expose debug BOLD AOFF
  2810. answer=arg(1)
  2811. lmatch='$½'
  2812. rmatch='╗'
  2813. ndx=index(answer,lmatch)
  2814. rndx=index(answer,rmatch)
  2815. do while ndx ~= 0
  2816.     if rndx < ndx then CALL errorabort("Malformed string:" answer,10) 
  2817.     v=substr(answer,ndx+length(lmatch),rndx-(ndx+length(lmatch)))
  2818.     exp=ReadVar(v,"R")
  2819.     if exp="" then CALL errorabort('Environmental variable 'v' not set',10)
  2820.     answer=substr(answer,1,ndx+1-LENGTH(lmatch))||exp||substr(answer,rndx+length(rmatch))
  2821.     ndx=index(answer,lmatch)
  2822.     rndx=index(answer,rmatch)
  2823. end
  2824. return answer
  2825.  
  2826. undefer: procedure expose debug BOLD AOFF
  2827. answer=arg(1)
  2828. lmatch='$$('
  2829. rmatch=')'
  2830. ndx=index(answer,lmatch)
  2831. rndx=index(answer,rmatch)
  2832. do while ndx ~= 0
  2833.     if rndx < ndx then CALL errorabort("Malformed string:" answer,10)
  2834.     v=substr(answer,ndx+length(lmatch),rndx-(ndx+length(lmatch)))
  2835.     exp="$("v")"
  2836.     answer=substr(answer,1,ndx+2-LENGTH(lmatch))||exp||substr(answer,rndx+length(rmatch))
  2837.     ndx=index(answer,lmatch)
  2838.     rndx=index(answer,rmatch)
  2839. end
  2840. return answer
  2841.  
  2842. lower:
  2843. return(bitor(arg(1),'20'x))
  2844.  
  2845. addslash:
  2846. curr=arg(1)
  2847. select
  2848. when right(curr, 1)=":" then nop
  2849. when right(curr, 1)="/" then nop
  2850. otherwise curr=curr"/"
  2851. end
  2852. return(curr)
  2853.  
  2854. requote:
  2855. return('"'strip(arg(1))'"')
  2856.  
  2857. /* a useful procedure by Walt Sullivan */
  2858. dequote:
  2859. parse arg thing
  2860. parse var thing '"' unq_thing '"'
  2861. if unq_thing ~= "" then return unq_thing
  2862. return thing
  2863.  
  2864. SaveEnv:
  2865. if roof then return   
  2866. call writech('STDOUT',"Saving prefs to ENVARC:"envpath)
  2867. address COMMAND "Copy ENV:"envpath"#? ENVARC:"envpath" ALL CLONE QUIET"
  2868. call writech('STDOUT'," ..Done"||lf)
  2869. return
  2870.  
  2871. ReadVar: procedure expose ENVPATH
  2872.     if arg(2)~="R" then x=GetVar(envpath||arg(1),"G")
  2873.     else x=GetVar(arg(1),"G")
  2874. return x
  2875.  
  2876. SetVars:
  2877. if index(arg(3),"E")=0 then call SetClip(arg(1),arg(2))
  2878. if index(arg(3),"R")>0 then root=1
  2879. else root=0
  2880.     if root then call SetVar(arg(1),arg(2),"G")
  2881.     else call SetVar(envpath||arg(1),arg(2),"G")
  2882.     if root then address COMMAND 'Copy ENV:'arg(1)' ENVARC: CLONE QUIET'
  2883. return
  2884.  
  2885. join:
  2886. x=arg(1)' 'arg(2)' 'arg(3)
  2887. temp='arexxtempfile'
  2888. do i=1 to (words(x)-1)
  2889.     if word(x,i)=word(x,words(x)) then do
  2890.         oops=word(x,words(x))
  2891.         x=delword(x,words(x))||'TO '||temp
  2892.         address COMMAND 'Join' x
  2893.         address COMMAND 'Copy ' temp ' ' oops
  2894.         call delete(temp)
  2895.         return 0
  2896.     end
  2897. end
  2898. x=arg(1)' 'arg(2)' TO 'arg(3)
  2899. address COMMAND 'Join' x
  2900. return 0
  2901.  
  2902. setserial:
  2903. roofprod=1   /* wplemsi.library fixed for roof product code              */
  2904. vdate='('||translate(date("E"),'.','/')||')'
  2905. nq=date("NORMAL")
  2906. parse var nq dq' 'mq' 'yq .
  2907. parse var smver x '.' y
  2908. emsiserial=u_mailer x'.'y'/Beta' '['genver']' mq dq yq '('time()')'
  2909. drop x y nq dq mq yq
  2910. Say "Compiling "BOLD||mode||AOFF" for the "BOLD||u_mailer||AOFF" Mailer"
  2911. Say "["emsiserial"]"
  2912. return
  2913.  
  2914. roofusage:
  2915. say " The Roof Mailer, unlike the other Shelter Mailers, is NOT a standalone"
  2916. SAY " mailer, but is a  part of the Roof  System.  Configuration information"
  2917. SAY " is derived from an active Roof System's CFG:ROOF.CFG.  Keywords, ENVs,"
  2918. SAY " assigns, and Roof Function Hosts are assumed to be present and active."
  2919. say ""
  2920. if ~show('p',"ROOFLOG") then CALL errorabort("The ROOFLOG Function Host is not active, exiting",20)
  2921. return
  2922.  
  2923. usage:
  2924. say BOLD||"  Error:"||AOFF||arg(1)
  2925. usage1:
  2926. say BOLD||"         Usage: "script" Mailer Output InputPath"||AOFF
  2927. say ITALICS"   Mailer:"AOFF
  2928. say "               "BOLD"ROOF | PORTICUS | GAZEBO | UMBRELLA"||AOFF
  2929. say ITALICS"   OutPut:"AOFF
  2930. say ""
  2931. say BOLD||"       ALL"AOFF"     All output modules are generated"
  2932. say BOLD||"       EMSI"AOFF"    EMSI is added to ALL"
  2933. say BOLD||"       ALLNC"AOFF"   Cache, Clock, [Notify] are not regenerated"
  2934. say BOLD||"       EMSINC"AOFF"  Cache, Clock, [Notify] are not regenerated"
  2935. say BOLD||"       CACHE"AOFF"   Regenerate and Reload Site Cache"
  2936. say ITALICS"   InputPath:"AOFF
  2937. say "          path to "ITALICS"Mailer"AOFF"Gen.cfg, Cache.cfg and subdirs modems/ and src/"
  2938. say "          defaults to CFG:wpl/gen/"ITALICS"MailerName"AOFF
  2939. say
  2940. exit arg(2)
  2941.  
  2942. errorabort:
  2943. say;say BOLD||"ERROR:"||AOFF arg(1)
  2944. exit arg(2)
  2945. /**/
  2946.  
  2947. sizebuffers:
  2948. address 'ROOFLOG' 'logline' left(time(),5) script': MainBUF:'length(mainBUF)
  2949. address 'ROOFLOG' 'logline' left(time(),5) script': EmsiBUF:'length(emsiBUF)
  2950. address 'ROOFLOG' 'logline' left(time(),5) script': WzBUF  :'length(wzBUF)
  2951. address 'ROOFLOG' 'logline' left(time(),5) script': XprBUF :'length(xprBUF)
  2952. address 'ROOFLOG' 'logline' left(time(),5) script': uuBUF  :'length(uuBUF)
  2953. address 'ROOFLOG' 'logline' left(time(),5) script': aBUF   :'length(aBUF)
  2954. address 'ROOFLOG' 'logline' left(time(),5) script': dialBUF:'length(dialBUF)
  2955. address 'ROOFLOG' 'logline' left(time(),5) script': ansBUF :'length(ansBUF)
  2956. address 'ROOFLOG' 'logline' left(time(),5) script': userBUF:'length(userBUF)
  2957. address 'ROOFLOG' 'logline' left(time(),5) script': loopBUF:'length(loopBUF)
  2958. return
  2959.  
  2960. SetGlobal:
  2961. call SetClip(upper(arg(1)),arg(2))
  2962. address COMMAND "SetEnv "arg(1) arg(2)
  2963. address COMMAND "SetEnv ENVARC:"arg(1) arg(2)
  2964. return
  2965.  
  2966. genfax:
  2967. faxBUF=faxBUF||'faxconnect:'||lf
  2968. if ROOFLOG then faxBUF=faxBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(callsout)"'||lf
  2969. faxBUF=faxBUF||'SubJump ckpresess'||lf||'Cmp dialrc 5'||lf||'TrueJump dodial_exit'||lf
  2970. faxBUF=faxBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) FAX"'||lf
  2971. faxBUF=faxBUF||'Set localfile "$(faxoutdir)$(remote.address)" faxrc 0'||lf
  2972. faxBUF=faxBUF||'RexxMsg SY REXX "return exists(\"$(localfile)\")"'||lf||'Set RC $(result1)'||lf||'FalseJump faxnofile'||lf
  2973. faxBUF=faxBUF||'SetStatus $(openstatus)'||lf
  2974. faxBUF=faxBUF||'RexxMsg "SY,RY" REXX "options failat 99;Address COMMAND \"$(faxsend)\";return RC"'||lf
  2975. faxBUF=faxBUF||'Set faxrc $(result2) tmprc 5'||lf
  2976. faxBUF=faxBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Fax Call $(remote.address) returned $(faxrc)"'||lf
  2977. faxBUF=faxBUF||'Cmp $(faxrc) 24'||lf||'TrueJump faxexit'||lf||'Set tmprc $(faxrc)'||lf
  2978. faxBUF=faxBUF||'faxexit:'||lf||'ReplyCall $(tmprc)'||lf
  2979. if ROOFLOG then faxBUF=faxBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(faxsout)"'||lf
  2980. faxBUF=faxBUF||'Clear tmprc'||lf||'Jump freeline'||lf
  2981. faxBUF=faxBUF||'faxnofile:'||lf||'ReplyCall $(tmprc)'||lf
  2982. faxBUF=faxBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Call $(remote.address) aborted, nothing to send"'||lf
  2983. faxBUF=faxBUF||'Clear tmprc'||lf||'Jump freeline'||lf
  2984.  
  2985. faxBUF=faxBUF||'faxanswer:'||lf||'SetStatus $(openstatus)'||lf
  2986. faxBUF=faxBUF||'RexxMsg NY LOGPROC "PutLine 'statgroup' $(p.inbound) FAX"'||lf
  2987. if gpfax then faxBUF=faxBUF||'RexxMsg SY REXX_GPFAX "'openserial';'fconreceive';'closeserial'"'||lf
  2988. else faxBUF=faxBUF||'RexxMsg SY REXX "options failat 99;Address COMMAND \"$(faxrecv)\";return RC"'||lf
  2989. faxBUF=faxBUF||'Set faxrc $(result1)'||lf||'ReplyCall 0'||lf
  2990. faxBUF=faxBUF||'RexxMsg NY LOGPROC "PutLog 'loggroup' $<time> $(line) Inbound Fax session returned $(faxrc)"'||lf
  2991. if ROOFLOG then faxBUF=faxBUF||'RexxMsg FY ROOFLOG "UPDATE_STAT $(faxsin)"'||lf
  2992. faxBUF=faxBUF||'Jump freeline'||lf
  2993. return
  2994.  
  2995.